Skip to main content
Glama

shohei

Crates.io CI License: MIT MSRV

日本語 | 中文

SHOHEISecurity Host Observation & Healthy Evaluation Instrument

shohei v2.5.1 — Rust infrastructure diagnostics library with 168 MCP tools across 62 modules. Comprehensive security, OSINT, threat intelligence, and governance coverage. DNSSEC chain validation, DANE/TLSA, modern protocols, IPv6 dual-stack, security headers, technology fingerprinting, CVE lookup, typosquatting detection, and redirect analysis built in. 0 API keys required — all free/open APIs. Use in Rust projects or hand to Claude for autonomous diagnosis.

Core Diagnostics (v1.0+)

  • MCP server for Claude — 168 diagnostic tools; ask "Check example.com's TLS certificate, DNSBL status, IPv6 support, technology stack, CVE vulnerabilities, typosquatting variants, and redirect chain" for autonomous analysis

  • TLS certificate inspection — DANE/TLSA validation (RFC 6698), chain analysis, OCSP responder detection, IPv6 support, OCSP stapling detection, TLS version probing (1.0–1.3), cipher suite enumeration

  • Email security scoring — MX records, SPF, DKIM, DMARC, BIMI, MTA-STS, TLS-RPT validation with 0–100 compliance score + issue linting

  • IP reputation — DNSBL checks against Spamhaus, Barracuda, SORBS; reverse DNS (PTR) + forward-confirmed reverse DNS (FCrDNS)

  • CDN/WAF detection — Identify Cloudflare, AWS CloudFront, Fastly, Akamai, Vercel, Netlify, Imperva via HTTP headers

  • DNS delegation audit — SOA serial consistency check, lame delegation detection across authoritative NS

  • Domain health report — Composite scoring across MX, SPF, DMARC, TLS, DNSSEC

  • Security headers audit — CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy with risk scoring

DNS & Network (v1.0+)

  • DNS propagation checker — Verify domain consistency across 6 global resolvers (Google, Cloudflare, Quad9, OpenDNS, 1.1.1.1, 8.8.8.8)

  • DNSSEC chain tree — see every DS, DNSKEY, and trust step from . to your domain; per-zone validation runs in parallel; add -v for key tags and algorithm names

  • Iterative resolution trace — watch queries travel from root servers to TLD to authoritative NS

  • Latency benchmarking — Multi-transport timing: System, DoH, DoT, DoQ across multiple rounds

  • Reverse DNS — PTR lookups for IPv4/IPv6 with FCrDNS validation

  • Subdomain enumeration — Check common subdomains (www, mail, api, staging, dev, etc.) with DNS resolution + HTTP status + TLS validity

  • Port reachability — TCP connectivity test for 15 common ports (SSH/22, HTTP/80, HTTPS/443, SMTP/25, MySQL/3306, etc.) with banner grab

  • IPv6 dual-stack checker — Verify AAAA records, IPv6 TCP/TLS/HTTP reachability, dual-stack completeness

  • DNS amplification potential — Measure UDP query/response size ratio, DDoS attack risk assessment

  • Wildcard DNS detection — Probe random subdomains to detect misconfigured *.domain records

  • Traceroute / hop analysis — Multi-platform hop-by-hop latency measurement (Linux/macOS/Windows)

Advanced Features (v1.0+)

  • DoH, DoT, and DoQ — DNS-over-HTTPS, DNS-over-TLS, and DNS-over-QUIC built in

  • Zone transfer (AXFR) — dump an entire zone from an authoritative server; detect critical misconfiguration

  • N-way server comparison — diff any number of resolvers simultaneously with --compare

  • Multiple record types--type a --type aaaa --type mx queries all types concurrently in a single invocation

  • Stdin and file batch mode — pipe a list of domains or use -f domains.txt

  • JSON output — pipe-friendly for scripting and automation

  • Watch mode — auto-refresh at a set interval with --watch

  • Interactive TUI — browse records, DNSSEC chain, and trace in a single terminal window (--features tui)

  • HTTP protocol detection — Automatically detect HTTP/1.1, HTTP/2, HTTP/3 version in responses

  • RPKI/ROA validation — BGP origin authorization checks via Cloudflare API

  • ARC authentication — Email chain authentication record validation (DNS-level)

  • TLS-RPT checking — SMTP TLS Reporting Policy record discovery and parsing

Web Reconnaissance & Threat Intelligence (v1.3–1.4)

  • Technology stack fingerprinting — Identify web server, language runtime, CMS (WordPress/Drupal), frameworks from HTTP headers

  • CVE lookup via NVD API — Search for known vulnerabilities (no API key required); integrates with tech fingerprinting

  • Typosquatting detection — Generate 200+ domain variants (TLD swap, missing char, transposition, homoglyph, etc.); parallel DNS resolution to find live squats

  • URL redirect chain tracing — Follow HTTP redirects hop-by-hop; detect HTTPS→HTTP downgrades and redirect loops

  • Parked domain detection — Identify domains parked for sale via header signatures (Sedo, GoDaddy, Bodis, etc.)

Why shohei?

AI-First Infrastructure Diagnostics

Most infrastructure tools are CLI-only. shohei is built for AI agents:

  • MCP Server Ready: Expose all diagnostics to Claude, ChatGPT, and custom AI agents without writing integration code

  • Claude Desktop Integration: Ask Claude "Check example.com's TLS certificate" → get automated diagnosis with full chain analysis

  • Structured Async APIs: Every function returns serializable types (DnsCheckResult, TlsCheckResult, EmailSecurityResult) — perfect for agents

  • No CLI, No Python: Pure Rust library + MCP server; scales from single checks to automated monitoring

Developer-Friendly

  • Library-first design: Import into Rust projects, CI/CD pipelines, or automation frameworks

  • Trust chain validation: The only open-source library that validates DNS → DNSSEC → TLS → DANE/TLSA in one call

  • Modern protocols: DoH, DoT, DoQ, DNSSEC, DANE/TLSA all built in

  • Automation-friendly: Concurrent queries, batching, multi-resolver checks, and programmatic APIs

Compared to alternatives (dig, dog, drill): shohei is composable—use it in tests, monitoring, CI/CD, or hand it to Claude for autonomous diagnosis.

Feature

shohei

dig

dog

doggo

q

delv

drill

Colored output

DNSSEC chain-of-trust tree

DNSSEC validation

Iterative resolution trace (visual)

Authority + Additional sections

N-way server comparison (--compare)

Zone transfer (AXFR)

Watch / auto-refresh (--watch)

Script-friendly output (--short)

Multiple record types (--type a --type mx)

Reverse DNS shorthand (-x 1.2.3.4)

Force TCP (--tcp)

Disable recursion (--no-recurse)

Query latency display

DNS-over-HTTPS (DoH)

DNS-over-TLS (DoT)

DNS-over-QUIC (DoQ)

JSON output

Interactive TUI

Technology stack fingerprinting

CVE lookup (no API key)

Typosquatting detection

URL redirect chain tracing

Parked domain detection

dig = BIND utils 9.16+; q = natesales/q; delv = BIND DNSSEC-validating resolver; drill = ldns-based

v2.4.0 additions: 168 MCP tools across 62 modules, robots.txt/OAuth/OIDC/API exposure, unauthenticated DB/container detection, subdomain takeover (30+ services), DGA risk scoring, DKIM key strength, attack surface composite score, RIPE Stat passive DNS, Azure AD exposure.

v2.5.1 security patch: 9 CRITICAL/HIGH SSRF fixes (VMC fetch, TCP port scan, MX connect, redirect-follow without per-hop validation across 8 modules), 15+ bug fixes (IPv6 DNSBL trailing-dot, Levenshtein panic on IDN, crypto stubs returning valid=true, hardcoded year comparisons, SPF all qualifier never populated, sequential awaits parallelised), 4× performance improvement on trust/threat scoring via tokio::join!.

Related MCP server: intodns-mcp

MCP Security Servers Comparison

shohei v2.5.1 stands out as the most comprehensive free, API-key-free MCP security server:

Feature

shohei

honeylabs

kastell

unphurl

cloud-audit

maigret

MCP Tools

168

~25

~30

~15

~20

~35

Modules

62

~8

~10

~5

~7

~12

DNS/DNSSEC

TLS/Certificate

Email Security

OSINT/Recon

Threat Intel

WHOIS/Domain

Port/Service

IP Reputation

Compliance/Governance

Crypto/Blockchain

Web Headers

API Keys Required

0

Multiple

Multiple

Some

Multiple

Multiple

Free/Open APIs Only

Partial

Partial

Partial

Partial

Partial

Active Maintenance

Open Source

✓ (MIT)

Key Advantages:

  • 168 MCP tools — largest comprehensive security toolkit (v2.5.1)

  • 0 API keys — all tools use free/open public APIs

  • 62 modules — DNS, TLS, email, OSINT, threat intel, governance, crypto, web security, supply chain, compliance

  • Zero setup cost — no vendor API accounts or authentication required

  • Pure library + MCP — Rust library for CI/CD + MCP server for Claude Desktop/agents

Installation

As a library (Rust projects)

Add to your Cargo.toml:

[dependencies]
shohei = "2.4"

Then import and use:

use shohei::resolver::standard::query;

#[tokio::main]
async fn main() {
    let result = query("example.com", "A").await;
    println!("{:?}", result);
}

For full API documentation: cargo doc --open or docs.rs/shohei.

As a CLI (manual diagnosis)

cargo install shohei

Or download a pre-built binary from the releases page.

For the interactive TUI mode:

cargo install shohei --features tui

Library Examples

shohei is designed to be imported and composed in Rust projects. See the examples/ directory:

Run examples:

cargo run --example propagation_check -- example.com
cargo run --example tls_chain_verify -- example.com
cargo run --example email_security -- example.com

CLI Usage

The CLI is a convenient wrapper around the library for manual inspection and testing.

DNS record query

shohei google.com              # A records (default)
shohei google.com --type AAAA  # AAAA records
shohei google.com --type NS    # Nameservers
shohei gmail.com  --type MX    # Mail exchangers

# Multiple record types in one command
shohei google.com --type a --type aaaa --type mx
# Security / DNSSEC-related record types
shohei google.com --type caa       # Certificate Authority Authorization
shohei github.com --type sshfp     # SSH fingerprints
shohei _443._tcp.example.com --type tlsa  # DANE TLSA

Reverse DNS

Resolve the PTR record for an IP address. IPv4 and IPv6 are both supported.

shohei -x 1.1.1.1              # → one.one.one.one
shohei -x 2606:4700:4700::1111 # IPv6 reverse lookup

DNSSEC chain of trust

Validate the full DNSSEC chain from the root trust anchor down to the target domain. Each zone's DS and DNSKEY records are checked individually.

shohei cloudflare.com --dnssec

# Verbose: show key tags, algorithm names, and KSK/ZSK roles
shohei cloudflare.com --dnssec --verbose

Iterative resolution trace

Step through the full resolution path — root servers → TLD nameservers → authoritative nameservers.

shohei google.com --trace

Modern transports

# DNS-over-HTTPS
shohei google.com --doh https://dns.google/dns-query

# DNS-over-TLS
shohei google.com --dot 1.1.1.1:853

# DNS-over-QUIC
shohei google.com --doq 8.8.8.8

# Custom resolver
shohei google.com --server 8.8.8.8

Authority and Additional sections

When querying an authoritative server directly, shohei displays the Authority Section (NS referrals) and Additional Section (glue A/AAAA records) — matching dig's default behavior.

# Query the .com TLD nameserver for google.com — shows NS referral + glue records
shohei google.com -s 192.5.6.30 --no-recurse

# Query an authoritative nameserver directly
shohei example.com -s 199.43.135.53 --no-recurse --type ns

Force TCP

Force DNS queries over TCP instead of UDP. Useful for large responses that get truncated (TC bit set) or environments that block UDP/53.

shohei example.com -s 8.8.8.8 --tcp

Short output

Strip all decoration and return just the record data — one value per line. Ideal for shell scripting.

shohei gmail.com --type MX --short

Compare resolvers

Query the same domain from multiple DNS servers simultaneously and diff the results. Useful for detecting CDN anycast differences or verifying a new resolver. Repeat --compare for N-way comparison.

# Show that both servers return the same NS records
shohei cloudflare.com --type NS --server 8.8.8.8 --compare 1.1.1.1

# Reveal CDN-induced A record differences
shohei google.com --server 8.8.8.8 --compare 1.1.1.1

# N-way comparison across three resolvers
shohei google.com --server 8.8.8.8 --compare 1.1.1.1 --compare 9.9.9.9

Zone transfer (AXFR)

Fetch the complete zone from an authoritative server. Requires -s to specify the authoritative nameserver.

shohei zonetransfer.me --axfr -s 81.4.108.41

Batch / stdin mode

Pipe a newline-separated list of domains and shohei queries each one in sequence. Lines starting with # are ignored as comments. You can also read targets from a file with -f.

echo -e "google.com\nexample.com\ncloudflare.com" | shohei
cat domains.txt | shohei --type mx --short
shohei -f domains.txt --type mx --short

Watch mode

Repeat the query every N seconds and auto-refresh the display. Press Ctrl+C to stop.

shohei google.com --watch 5         # refresh every 5 seconds
shohei google.com --type A --watch 10

Output formats

shohei google.com --output json   # JSON for scripting
shohei google.com --output plain  # No colors (CI-friendly)

Interactive TUI (requires --features tui)

Pre-loads records, DNSSEC chain, and trace in parallel, then presents all three as navigable views.

shohei google.com --tui
 shohei — google.com
┌─ Records ──────────────────────────────────────────────────────────┐
│ Query: google.com (A IN)                                           │
│                                                                    │
│ NAME                                    TTL   TYPE   DATA          │
│ ────────────────────────────────────────────────────────────────── │
│ google.com.                             120   A      142.250.x.x   │
│ ...                                                                │
└────────────────────────────────────────────────────────────────────┘
 [r] Records  [d] DNSSEC  [t] Trace  [↑↓/jk] Scroll  [q] Quit

Key

Action

r

Records view

d

DNSSEC chain view

t

Iterative trace view

/ k

Scroll up

/ j

Scroll down

q / Esc

Quit

Options

Flag

Short

Description

--type <TYPE>

-t

Record type (repeatable): a, aaaa, mx, ns, txt, cname, soa, ptr, srv, https, svcb, naptr, dnskey, ds, rrsig, caa, tlsa, sshfp, nsec, nsec3, any

--reverse <IP>

-x

Reverse DNS — auto-converts IP to PTR query (IPv4 and IPv6)

--file <FILE>

-f

Read domains from a file (one per line), like dig -f

--dnssec

-d

DNSSEC chain-of-trust validation tree

--verbose

-v

Show verbose detail (key tags, algorithms) in DNSSEC chain

--trace

Iterative resolution path from root servers

--no-recurse

Clear RD bit — query authoritative servers directly; shows Authority + Additional sections

--axfr

Full zone transfer from the server specified with -s

--tcp

Force TCP instead of UDP (requires -s; useful for large/truncated responses)

--timeout <SECS>

DNS query timeout in seconds (default: 5, max: 60)

--short

Output data values only, one per line (script-friendly)

--watch <SECS>

Repeat query every N seconds; Ctrl+C to stop

--compare <ADDR>

Query an additional server and diff; repeat for N-way comparison

--doh <URL>

DNS-over-HTTPS (e.g. https://dns.google/dns-query)

--dot <IP:PORT>

DNS-over-TLS (e.g. 1.1.1.1:853)

--doq <IP:PORT>

DNS-over-QUIC (e.g. 8.8.8.8 or 8.8.8.8:853)

--server <ADDR>

-s

Custom DNS server (8.8.8.8 or 8.8.8.8:53)

-4

Force queries over IPv4 transport

-6

Force queries over IPv6 transport

--output <FORMAT>

-o

colored (default) · plain · json

--tui

Interactive TUI (requires --features tui)

Trust States

Badge

Meaning

✓ SECURE

DNSSEC-validated, full chain of trust verified

⚠ INSECURE

Zone unsigned, but parent has no DS delegation (expected)

✗ BOGUS

Validation failed — signature mismatch or broken chain

? INDETERMINATE

DNSSEC not requested, or result unclear

MCP Server & Claude Integration

✅ Live Now (v2.5.1+)

MCP (Model Context Protocol) Server with 168 tools lets Claude Desktop and other AI agents call shohei diagnostics directly:

# 1. Install shohei
cargo install shohei

# 2. Register MCP server in Claude Desktop config:
# ~/.config/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "shohei": {
      "command": "/path/to/shohei-mcp"
    }
  }
}

# 3. Restart Claude Desktop
# 4. Ask Claude: "Check example.com's TLS certificate"

168 Tools Available to Claude (62 modules):

  • DNS & DNSSEC (10+ tools) — Query records, DNSSEC validation, propagation checks, zone transfers, latency benchmarking

  • TLS & Certificates (8+ tools) — Chain inspection, DANE/TLSA validation, certificate transparency (CT) logs, OCSP checks, cipher suites

  • Email Security (6+ tools) — SPF, DKIM, DMARC, BIMI, MTA-STS, TLS-RPT validation with compliance scoring

  • IP & Network (10+ tools) — IP reputation, reverse DNS, ASN/GeoIP, port scanning, traceroute, IPv6 dual-stack checks

  • Web Security (12+ tools) — Security headers audit, WAF/CDN detection, technology fingerprinting, HTTP/2/3 detection, redirect analysis

  • OSINT & Recon (15+ tools) — WHOIS, domain age, subdomain enumeration, typosquatting detection, parked domain detection, brand name checker

  • Threat Intelligence (10+ tools) — CVE lookup, VirusTotal integration, URLhaus checking, Shodan queries, breach database lookups

  • Governance & Compliance (8+ tools) — BGP/RPKI validation, GDPR compliance checking, email authentication chain (ARC), DNS amplification risk

  • Crypto & Blockchain (10+ tools) — Ethereum address validation, cryptocurrency holder detection, blockchain WHOIS

  • Advanced Analysis (19+ tools) — Entity relationship graphs, brand detection, URL analysis, redirect domain age, compliance reports, HASSH fingerprinting, cloud exposure, network reputation

  • URL Intelligence (4 tools) — URL parsing, security intelligence, defacement detection, analytics

  • Cloud Exposure (4 tools) — Cloud provider asset detection, misconfiguration scanning, cloud infrastructure analysis

  • OSINT Expansion (4 tools) — Advanced recon techniques, infrastructure mapping, historical data queries

  • Network Reputation (3 tools) — ISP reputation, network behavior analysis, threat scoring

  • Cloud Infrastructure (4+ tools) — AWS/GCP/Azure resource exposure, misconfigured storage detection, IAM policy analysis

  • Credential Security (4+ tools) — Leaked credential checks, API key exposure scanning, secret detection in public resources

  • Supply Chain Security (4+ tools) — Dependency vulnerability analysis, package registry integrity checks, typosquatting in package names

  • Web Intelligence (5 tools) — robots.txt analysis, .well-known discovery, OAuth/OIDC audit, cert pinning, API debug endpoint exposure

  • Service Exposure (4 tools) — Unauthenticated database access (Redis/MongoDB/Elasticsearch), Docker/Kubernetes API exposure, service fingerprinting, DGA risk scoring

  • Subdomain Takeover (3 tools) — 30+ service signatures (GitHub Pages, Heroku, Netlify, Vercel, Azure, AWS, Shopify…), RIPE Stat passive DNS, Azure AD tenant exposure

  • Email Advanced (2 tools) — DKIM key strength (1024 vs 2048 vs Ed25519), MX server STARTTLS deep audit

  • Attack Surface (1 tool) — Composite CVSS-like score aggregating TLS + web headers + email + network exposure

Example: Claude diagnoses a domain autonomously:

"Check if example.com's mail configuration is correct, and verify its TLS certificate chain" → Claude calls check_email_security + check_tls_chain → returns full analysis

MCP shohei in Claude Desktop

Other Integrations

  • Rust Library: use shohei; in your projects — structured async APIs

  • CLI: Manual inspection: shohei example.com --dnssec --trace

  • JSON output: Scripting and tooling: shohei example.com --output json

See docs/INTEGRATIONS.md for full details.

Built with

License

MIT — see LICENSE

Available Tools

5 tools
benchmark_latencyB

Benchmark DNS latency across transports

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to benchmark
transportsNoTransports to test (optional)

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the tool benchmarks latency but does not reveal that it makes network requests, potential rate limits, or whether it is read-only. For a benchmark tool, these gaps are significant.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at 5 words, front-loaded with key information. It earns its place but could add a bit more context without becoming verbose. Still very efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (benchmark, 2 params, no output schema, no dependencies), the description is too sparse. It does not explain return values, valid transport values, duration of benchmark, or how it differs from check_dns. Incomplete for confident use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described ('Domain to benchmark', 'Transports to test'). The description adds no extra meaning beyond what the schema provides—it does not specify transport formats (e.g., UDP/TCP/DoH) or latency units. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Benchmark DNS latency across transports' uses a specific verb (benchmark) and resource (DNS latency) with scope (across transports). It clearly distinguishes from sibling tools like check_dns, which likely checks DNS resolution status rather than performance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for performance testing but does not explicitly state when to use benchmark_latency versus alternatives like check_dns. No exclusions or conditional guidance are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_dnsB

Check DNS records for a domain

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to query
record_typesNoRecord types (A, AAAA, MX, TXT, etc)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Minimal behavioral info; with no annotations, the description should disclose side effects, errors, or operational details (e.g., query method, rate limits), but none are provided.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is a single sentence, which is concise but could benefit from additional context without being verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema and no annotations, the description should explain return values or results; it only states a generic action, leaving the agent uninformed about output.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no extra meaning beyond the schema definitions; baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'check' and resource 'DNS records for a domain', distinguishing it from sibling tools like benchmark_latency or check_tls_chain.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives; lacks context for selection among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_email_securityA

Check email security (MX, SPF, DKIM, DMARC)

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses the tool checks DNS-based email security records but does not mention side effects, rate limits, or that it performs external DNS queries. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence (8 words) with no filler. Every word is essential and the primary verb 'Check' is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description should indicate what the tool returns (e.g., results for each check). It only states what it checks, leaving the agent to infer return format. Adequate for a simple tool but incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already describes the 'domain' parameter as 'Domain to check', achieving 100% coverage. The tool description adds no additional meaning beyond what the schema provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks email security, listing specific components MX, SPF, DKIM, DMARC. This distinguishes it from sibling tools like check_dns (generic DNS) and check_tls_chain (TLS).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking email security but provides no explicit guidance on when to use this tool vs alternatives like check_dns or benchmark_latency. No exclusion criteria or alternative mention.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_propagation_globalB

Check DNS propagation across 6 global resolvers

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYesDomain to check

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only states 'check DNS propagation across 6 global resolvers', but does not describe if it is read-only, what the resolvers are, rate limits, or any side effects. This is minimal transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that immediately conveys the tool's purpose. It is front-loaded and efficient, though slightly terse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has one parameter and no output schema, the description is somewhat adequate. However, it does not explain what the output looks like or any error conditions, leaving gaps for an agent to fully understand the tool's behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (the only parameter 'domain' has a description 'Domain to check'). The description does not add additional meaning beyond what the schema already provides, so baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Check DNS propagation across 6 global resolvers' uses a specific verb 'Check' and resource 'DNS propagation' with a clear scope 'across 6 global resolvers'. This distinguishes it from sibling tools like check_dns, which likely checks a single DNS record.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not provide explicit guidance on when to use this tool vs alternatives. It implies usage from the name and description but lacks explicit when-to-use or when-not-to-use statements.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_tls_chainB

Inspect TLS certificate chain for a hostname

ParametersJSON Schema
NameRequiredDescriptionDefault
check_daneNoCheck DANE/TLSA records
hostnameYesHostname to inspect
portNoPort (default 443)

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits beyond the basic 'inspect' action. It omits details on mutability, authentication needs, rate limits, or error behavior, which is a significant gap for a tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is concise and to the point.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a security inspection tool with no output schema and no annotations, the description lacks details on return values, error conditions, or behavioral context like certificate validation depth. It feels incomplete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 all parameters (hostname, port, check_dane). The description adds no additional meaning beyond the schema, meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Inspect TLS certificate chain for a hostname' clearly states the specific verb (inspect) and resource (TLS certificate chain), and is distinct from sibling tools like check_dns or check_email_security.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives such as check_dns or check_email_security. The description does not mention use cases or prerequisites.

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.

  1. 5 tool updatesv1.0.0
    • First observedbenchmark_latency
    • First observedcheck_dns
    • First observedcheck_email_security
    • First observedcheck_propagation_global
    • First observedcheck_tls_chain

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation5/5

Each tool has a distinct purpose: DNS latency benchmarking, DNS record checking, email security checks, DNS propagation, and TLS certificate inspection. No overlapping functionality.

Naming Consistency5/5

All tools use snake_case with a verb_noun pattern: 'benchmark_latency' and 'check_*' variants. Consistent and predictable.

Tool Count5/5

5 tools is a well-scoped set for a DNS/network diagnostic server, covering key operations without excessive overload.

Completeness4/5

Covers DNS benchmarking, records, propagation, email security, and TLS chains. Minor gaps like reverse DNS or DNSSEC, but sufficient for typical diagnostics.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for email deliverability: validate SPF/DKIM/DMARC/BIMI, check blacklists, test SMTP/IMAP, look up DNS, and generate ready-to-deploy records for any major email provider. Ships with two one-click prompts (audit-deliverability, setup-dns). Public, no auth.
    17
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for IntoDNS.ai providing 36 free tools for DNS, DMARC, SPF, DKIM, BIMI, DNSSEC, MTA-STS, FCrDNS, blacklist and email security checks. Citation-grade report snapshots with content hashes. No API key required.
    45
    262 npm
    2
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Diagnose MCP servers — health checks, tool testing, token cost audits, conflict detection, and security scanning with 50+ prompt injection patterns. Works as CLI or MCP server inside Claude Desktop.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    An MCP server for domain intelligence — WHOIS, DNS records, SSL certificate inspection, SPF/DMARC validation, security-header audits, and blacklist/reputation checks, callable by AI agents. Powered by domainintel.app; runs server-side, no local setup.
    7
    36 npm
    MIT