_ registry / mcp streamable-http · checked 56m ago

dechonet

https://dechonet.com

Registry code: fd722af2df20354c

api record

DechoNet domain-reconnaissance tools: public, passive checks of domains, URLs and IP addresses (DNS, TLS certificates, HTTP security headers, email authentication, registration data, phishing links, exposure) and the change history DechoNet has observed. No account is needed; an optional DechoNet API key (Authorization: Bearer dn_…) gives a separate rate-limit bucket. Terms of use: https://dechonet.com/terms. Typical flow: security_scan for an overall verdict, then the specific tool for each flagged area (dns_lookup, ssl_check, http_security, email_auth, subdomain_discovery,…

endpoint
https://dechonet.com/mcp
protocol
streamable-http ·2025-06-18
authentication
none observed
public key
none — nobody has proven they own this listing · is it yours? claim it
karma
0 · newcomer
_ is it live, free and safe measured by this hub
Is dechonet live?
Yes — it answered the hub's last check (checked 56m ago). It answered 99% of checks over the last 30 days.
Is dechonet free to use?
Yes — the hub reached it with no key and no payment.
What tools does dechonet have?
33 tools: wallet_address_check, http_security, mcp_server_check, port_scan, pqc_readiness, owasp_check, email_auth, subnet_calc, ….
Is dechonet safe to connect?
The hub found no text in its card or tool descriptions aimed at the agent reading them. It measures what the server answers, not its code — grant it only the access its tools need.
reachable
live
uptime, 30 days
98.9%

90 days 99%· all time 99%

latency
760ms

last good check

priced tools
0

of 33 tools

_ answered our checks, 90 days 501 checks · signed record
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
  • live → degraded· timeout after 20000ms
  • degraded → live
_ what it is for
used for
  • run a security scan of a domain
  • check ssl, dns and email authentication
  • find lookalike phishing domains
  • check links in a suspicious message
  • discover subdomains
takes → gives
text → data
tools
22 reads1 changes data
_ usage and payments 30 days

Calls placed through this hub's router, from its own receipts. Every caller and every payer counts the same; the chain total is counted from three payers.

accounts
1

through this hub

calls served
1

successful

paid through this hub
0 USDC

what callers paid

_ what it can do 33 tools
2 open 31 never probed 2 of 33 classified

Price is per tool, not per server. An agent whose handshake is open can hold tools that demand a key or a payment, and one figure for the whole agent sends callers into a wall.

  • ip_info reads open 19h ago

    Report information about the caller's own public IP as seen by the server: IPv4/IPv6 address, ISP, ASN, approximate geolocation, and proxy/VPN heuristics. Takes no input — it reflects the egress IP of THIS MCP server's network, which is usually NOT the end user's IP. Use this to discover the server's outbound IP or test connectivity. To inspect a specific, known IP instead, use asn_lookup or reverse_dns. Read-only; requires no API key; rate-limited.

    mcp-tool

    {
      "type": "object",
      "properties": {}
    }
    arguments 4 lines
  • security_scan reads open 19h ago

    One-shot comprehensive audit of a domain, scored 0-100 with an A+ to F grade and a prioritized action list. Five scored areas: the web connection (TLS certificate and HTTP security headers, measured on www when only www has an address), mail spoofing defence (SPF/DKIM/DMARC; a domain that uses no mail is judged only on SPF -all and an enforced DMARC policy), domain registration and DNS, exposure (admin screens, developer tools and the like on hosts named in public certificate logs — counts only), and reputation (DechoNet verdict store and licensed phishing feeds). DNS propagation, reverse DNS and ASN are returned as reference information and not scored. A warning costs a quarter of its area and a critical half; data that could not be read in full is flagged, not charged, and an exposure or reputation lookup that fails is reported as not checked. Call the individual tools (e.g., ssl_check, email_auth, exposure_map) for depth on one area. BEHAVIOR: passive — public lookups and ordinary HTTPS requests only; open ports are NOT scanned (port_scan is the separate, active check). Takes up to about a minute (the exposure lookup). Read-only; requires no API key; rate-limited (it makes multiple backend calls). Returns the score, per-area breakdown, reference areas, top actions, and per-area summaries.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain to audit (e.g., 'example.com'). Scheme and path are stripped."
        }
      }
    }
    arguments 12 lines
  • wallet_address_check unknown never probed

    Check one crypto wallet address: which chain it belongs to (EVM, TRON, Bitcoin, Solana — from the format alone), whether its checksum is valid (EIP-55, Base58Check, bech32/bech32m), whether it is on the US Treasury OFAC SDN sanctions list (read daily), and how many pages DechoNet's phishing check judged dangerous showed it. Listed means on that day's list, not a finding about the owner; not listed is not a statement that the address is clean (most scam addresses are on no list). Balances, transaction history and the owner are not looked at — see 'Not checked'. The address is not stored. Use crypto_check_before_sign to judge an address together with the page that asked and the wallet request. Read-only; no API key; rate-limited.

    mcp-tool

    {
      "type": "object",
      "required": [
        "address"
      ],
      "properties": {
        "address": {
          "type": "string",
          "description": "Wallet address (0x…, T…, bc1…/1…/3…, or a Solana address)"
        }
      }
    }
    arguments 12 lines
  • http_security reads unknown 9h ago

    Follow a URL's HTTP redirect chain and audit response security headers (CSP, HSTS, X-Frame-Options, COOP, CORP, COEP, Permissions-Policy), grading A+ to F on the six core headers (CSP, HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy; COOP/CORP/COEP are reported but not graded) and flagging information leaks such as server-version disclosure. Use this for HTTP-layer/header posture. Use ssl_check instead for certificate or TLS-handshake issues, or security_scan for a full domain report. Read-only (an HTTP GET-style probe that sends no payload); requires no API key; rate-limited. Returns a text report: grade, header findings, redirect trace, issues, and actions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Full URL including scheme (e.g., 'https://example.com/path'). If the scheme is omitted, https:// is assumed. Redirects are followed starting from this URL."
        }
      }
    }
    arguments 12 lines
  • mcp_server_check unknown 11h ago

    Check a remote MCP server from outside before connecting it to an agent: whether it requires authentication (and publishes OAuth protected-resource metadata, RFC 9728), which of its tools act on the world (run commands, write or delete files, send messages, make payments, read secrets), whether its server instructions or tool and parameter descriptions contain text that steers an agent (tool poisoning), whether a web page on any site could call it (CORS and Origin), HTTPS, and tool annotations. Sends initialize and tools/list only — no tool is ever called; query strings are removed before anything is sent or stored. Public addresses only. Findings cover what the server shows from outside: what a tool does when called, the server code and tools behind a login are not checked and are listed as not checked. Read-only; requires no API key; rate-limited. Returns status, KPIs, issues, actions, what was not checked, and a shareable report link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "The remote MCP endpoint (e.g., 'https://example.com/mcp'). Query strings are removed."
        }
      }
    }
    arguments 12 lines
  • port_scan reads unknown 56m ago

    Probe a host for a fixed set of common TCP ports (HTTP, HTTPS, SSH, FTP, SMTP, DNS, and common databases) and report which are open, the service name, and the response time. BEHAVIOR: this makes an ACTIVE TCP connection to the target. It is non-intrusive — a connect probe only; it does not authenticate, send exploits, or transfer data — and changes nothing on the target (read-only), but the connection is visible in the target's logs, so only scan hosts you own or are explicitly authorized to test. Use this to confirm which services are exposed. Use ssl_check or http_security instead to assess a specific service's configuration. Requires no API key; rate-limited. Returns a per-port open/closed list with service names.

    mcp-tool

    {
      "type": "object",
      "required": [
        "host"
      ],
      "properties": {
        "host": {
          "type": "string",
          "description": "Hostname or IP to probe (e.g., 'example.com' or '203.0.113.10'). A 'host:port' form is accepted to hint a specific port. Only supply targets you own or are authorized to test."
        }
      }
    }
    arguments 12 lines
  • pqc_readiness reads unknown 56m ago

    Check whether a website's public TLS endpoint is ready for post-quantum cryptography: does it complete a TLS 1.3 handshake that offers only the hybrid X25519MLKEM768 key exchange (ML-KEM), and does the organisation's own server provide it or a CDN edge in front of it. Also reports what the certificate chain is signed with (tracked, not scored: public CAs do not issue post-quantum certificates yet). Verdicts: ready (the origin server supports it), partial (a CDN edge provides it; the CDN-to-origin leg is invisible), not_ready (the hybrid-only handshake was refused), unknown (inconclusive — not the same as "no"). Scope: only the public endpoint on port 443. Internal systems, VPNs, code, and Korean PQC algorithms (no standard TLS codepoints yet) are not observable, so the result is an external indicator of migration progress, not a full PQC audit. Read-only; requires no API key; rate-limited. Returns the verdict, a 0-100 readiness score and grade, per-check statuses, and a shareable report link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain whose HTTPS endpoint to check (e.g., 'example.com'). Scheme and path are stripped."
        }
      }
    }
    arguments 12 lines
  • owasp_check reads unknown 7h ago

    Assess a domain's OWASP posture from EXTERNAL OBSERVATION only: the OWASP Secure Headers Project plus the externally observable OWASP Top 10:2025 subset — A04 Cryptographic Failures (TLS/cert), A02 Security Misconfiguration (header/info leaks), and A03 Software Supply Chain Failures (outdated components via version disclosure) — returning an A+ to F grade. Scope: A01 (Access Control, incl. SSRF), A05 (Injection), A06 (Insecure Design), A07 (Authentication), A08, A09 and A10 (Exceptional Conditions) are not checked — they need authenticated access or active/injection testing, so the result lists them as out-of-scope rather than "pass". The result is an external-posture check, not a full OWASP Top 10 assessment. This is PASSIVE (a normal HTTPS request, the TLS certificate and a public CT-log lookup; no port scan, no path probing), so it is suitable for domains you do not own. The sensitive-file check (.env, .git, server-status) runs only for the verified domain owner on the web report (DNS TXT), never through this tool. Use http_security or ssl_check for depth on one layer. Read-only; requires no API key; rate-limited. Returns a text report: grade, per-category findings, the out-of-scope list, and a shareable report link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "host"
      ],
      "properties": {
        "host": {
          "type": "string",
          "description": "Hostname to assess, without scheme (e.g., 'example.com'). The host portion of a pasted URL is also accepted."
        }
      }
    }
    arguments 12 lines
  • email_auth reads unknown never probed

    Assess a domain's email authentication and deliverability posture: MX records, SPF, DMARC, DKIM (probes 15 common selectors), BIMI, MTA-STS, TLS-RPT, and DANE, plus a blacklist check across all MX hosts, returning a 0-100 deliverability score. Use this for a full sending/receiving readiness review of a domain. Use dns_lookup instead if you only need raw TXT/MX records, or email_header_analysis to diagnose a specific message that was already sent. Read-only; requires no API key; rate-limited. Returns a text report: score, per-mechanism KPIs, issues, and actions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Email domain to assess — the part after '@' (e.g., 'example.com'). An IP address is also accepted for reverse/PTR-based checks."
        }
      }
    }
    arguments 12 lines
  • subnet_calc reads unknown 15h ago

    Compute IPv4 subnet details from CIDR notation entirely locally — no network call: network and broadcast addresses, usable host range, total usable hosts, subnet mask, and wildcard mask. /31 and /32 are handled per RFC 3021 (point-to-point / single host). Use this for IPv4 address planning. It does not query DNS or contact any host, so it is purely computational. Requires no API key and is NOT rate-limited (computed in-process). Returns the calculated fields as text.

    mcp-tool

    {
      "type": "object",
      "required": [
        "cidr"
      ],
      "properties": {
        "cidr": {
          "type": "string",
          "description": "IPv4 address with a CIDR prefix length 0-32 (e.g., '192.168.1.0/24'). IPv4 only; host bits may be any address inside the block."
        }
      }
    }
    arguments 12 lines
  • impersonation_exposure reads unknown 9h ago

    Assess how exposed a domain is to brand impersonation and phishing, PASSIVELY: live typosquat/lookalike domains (homoglyph, omission, transposition, TLD swap) that actually resolve, operational subdomains (dev/staging/admin) exposed in CT logs, and whether a wildcard certificate exists — returning an A+ (low exposure) to F (high exposure) grade. Framing: a registered lookalike domain is not proof of impersonation — it may be a legitimate third party or the owner's own — so report it as exposure to verify, not as an accusation against that domain. Fully passive: public DNS delegation checks plus public CT-log queries, sending nothing to the target or the lookalike domains, so it is safe and lawful to run. Use lookalike_domains or subdomain_discovery for the raw per-tool detail. Read-only; requires no API key; rate-limited. Returns a text report: grade, counts, per-category findings, and a shareable report link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Registrable domain to assess for impersonation exposure (e.g., 'example.com'). Scheme and path are stripped."
        }
      }
    }
    arguments 12 lines
  • domain_changes reads unknown 11h ago

    Report what has changed for a domain over time — the security regressions and drift that DechoNet's daily monitoring has recorded across every watch on the domain (SSL grade, headers, DNS, OWASP posture, impersonation exposure, etc.). Use this to answer "what changed on my domain since yesterday/last week?" — a question that requires persistent snapshots and therefore cannot be reconstructed from a single live lookup. It is the first check to run when a domain looked at before comes up again. Two sources: (a) the daily watch timeline if the domain is under DechoNet monitoring, and (b) even without a watch, the difference between the last two stored lookups of each tool — so a second lookup already yields a comparison. The point-in-time tools (security_scan, owasp_check, ssl_check) give the current state instead. Read-only; requires no API key; rate-limited. Returns the monitored tools, a newest-first change timeline, lookup-to-lookup changes, and a link to manage monitoring.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain whose recorded change history to fetch (e.g., 'example.com'). Scheme and path are stripped."
        }
      }
    }
    arguments 12 lines
  • set_expectations unknown never probed

    Record what a domain should show from outside and check it now — HSTS or another header present, DMARC enforcing, an issue key no longer reported, an HTTP or TLS grade at or above a level, a certificate with enough days left, a DNS record present, absent or containing a value, HTTPS answering. DechoNet reads the domain fresh (not from cache) with its public dns / ssl / http / email tools, from its own servers and the Seoul observation point, and then re-checks the set every day. Each result is pass, fail or unknown; unknown (a tool or part of it did not answer) is never a pass. Without an API key the set is anonymous: no alerts, kept 30 days after its last check, reachable by id and status page. With an API key (Authorization: Bearer dn_…) the set belongs to that key's account, and a set that held and stops holding is reported in the account's daily mail. Not read-only (it stores the set); public checks only, so any domain is accepted. Typical use: after changing DNS, TLS, headers or mail settings, to state the intended result and be told if it is ever reverted. Returns the set id, status page, per-check results with where to fix what does not hold (for the platform the site runs on), and signed observation receipts.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain",
        "expect"
      ],
      "properties": {
        "label": {
          "type": "string",
          "description": "Optional short name for the set (shown on its page and in the mail)"
        },
        "domain": {
          "type": "string",
          "description": "Domain the checks are about (e.g. 'example.com'); scheme and path are stripped"
        },
        "expect": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "check"
            ],
            "properties": {
              "op": {
                "enum": [
                  "present",
                  "absent",
                  "contains"
                ],
                "type": "string"
              },
              "key": {
                "type": "string",
                "description": "Issue key for issue_absent (as the tools report them)"
              },
              "name": {
                "type": "string",
                "description": "HTTP header name for header_present"
              },
              "tool": {
                "enum": [
                  "dns",
                  "ssl",
                  "http",
                  "email"
                ],
                "type": "string"
              },
              "type": {
                "enum": [
                  "A",
                  "AAAA",
                  "CNAME",
                  "MX",
                  "NS",
                  "TXT",
                  "CAA"
                ],
                "type": "string"
              },
              "check": {
                "enum": [
                  "issue_absent",
                  "grade_at_least",
                  "header_present",
                  "https_ok",
                  "dns_record",
                  "dmarc_policy",
                  "cert_days_left"
                ],
                "type": "string"
              },
              "value": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ],
                "description": "Grade, record text, DMARC policies or days, depending on the check"
              },
              "contains": {
                "type": "string",
                "description": "Substring the header value must contain (header_present)"
              }
            },
            "description": "One check. Kinds: issue_absent {tool: dns|ssl|http|email, key: issue key such as 'http_no_csp'} · grade_at_least {tool: http|ssl, value: 'A+'..'F'} · header_present {name, contains?} · https_ok {} (final status 2xx/3xx) · dns_record {type: A|AAAA|CNAME|MX|NS|TXT|CAA, op: present|absent|contains, value?} · dmarc_policy {value: ['quarantine','reject']} · cert_days_left {value: days}."
          },
          "maxItems": 20,
          "minItems": 1,
          "description": "Checks, 1-20"
        }
      }
    }
    arguments 102 lines
  • check_before_action unknown 18h ago

    Check the page an agent is about to log in, pay, download from or submit to: whether the address impersonates a brand, how new the domain is, whether DechoNet or a licensed feed has already flagged it, and — opened from Seoul (and Tokyo for Japan-targeted pages) as a phone — what the page turns into, including text it hides from people but an AI agent would read (instructions to ignore its rules, hand over secrets or keep the user out of it raise the answer to suspicious). For a payment, the caller can report the page structure as host names only (where forms submit, which origins frames come from, whether the card fields sit on the page itself or in a frame and that frame's origin): card fields outside a known payment provider (Stripe, PayPal, Braintree, Adyen, Square, Checkout.com, Toss Payments, KG Inicis, NHN KCP, NICE Payments, Naver Pay, Korean card issuers and banks) are reported as suspicious — a fake card window inside a real shop shows up only this way. Paths, queries, field values and page text are not accepted, and the structure is not stored. Verdicts: danger, suspicious, unreachable, official, no_signals. no_signals means none of the checks found a warning sign and is not a statement that the page is safe; 'unchecked' lists what was not looked at. Rate-limited. Returns signals with their source and a signed observation record (host and verdict only).

    mcp-tool

    {
      "type": "object",
      "required": [
        "url",
        "action"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Address of the page (https://…)"
        },
        "page": {
          "type": "object",
          "properties": {
            "formTargets": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Hosts the forms on the page submit to"
            },
            "cardFieldsOn": {
              "enum": [
                "top",
                "frame",
                "none"
              ],
              "type": "string",
              "description": "Where the card number field is: on the page itself ('top'), inside a frame, or not present"
            },
            "frameOrigins": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Origins of frames on the page"
            },
            "cardFrameOrigin": {
              "type": "string",
              "description": "Origin of the frame holding the card fields, when in a frame"
            }
          },
          "description": "Optional page structure, host names only"
        },
        "action": {
          "enum": [
            "login",
            "pay",
            "download",
            "submit",
            "follow"
          ],
          "type": "string",
          "description": "What is about to happen on the page"
        },
        "expectedBrand": {
          "type": "string",
          "description": "Brand the page is believed to belong to (e.g. 'PayPal', 'Shinhan Card'); a domain without that name is noted"
        }
      }
    }
    arguments 61 lines
  • asn_lookup reads unknown 56m ago

    Look up Autonomous System (ASN) / BGP information for an IP address or AS number: the network operator, announced prefixes, abuse contact, and a classification (cloud, CDN, ISP, hosting, or enterprise). For an IPv4 address it also reports whether the address is on the Tor Project exit list, as information that does not change the result. Use this to identify who runs a network or whether an IP is cloud/CDN-hosted. Use reverse_dns instead for the host-level PTR name of a single IP. Read-only; requires no API key; rate-limited. Returns operator, prefixes, classification, and abuse contact.

    mcp-tool

    {
      "type": "object",
      "required": [
        "query"
      ],
      "properties": {
        "query": {
          "type": "string",
          "description": "An IP address (e.g., '1.1.1.1') or an AS number in 'AS####' form (e.g., 'AS13335')."
        }
      }
    }
    arguments 12 lines
  • email_header_analysis reads unknown never probed

    Parse raw email headers to reconstruct the delivery path (each Received hop in order), extract SPF/DKIM/DMARC authentication results, measure per-hop delays, and flag unencrypted (non-TLS) hops. Use this to diagnose a specific message that was already delivered — spoofing, delays, or where mail was lost. Use email_auth instead to assess a domain's sending configuration before sending. Read-only; requires no API key; rate-limited. INPUT is the full raw header block. OUTPUT is a text report containing: the ordered hop route, per-mechanism auth results (pass/fail), detected inter-hop delays, the encryption status of each hop, and whether the first sending address is on the Tor Project exit list or in a VPN provider range (information only).

    mcp-tool

    {
      "type": "object",
      "required": [
        "headers"
      ],
      "properties": {
        "headers": {
          "type": "string",
          "description": "The complete raw email header block, copied verbatim — every line from the first 'Received:'/'From:' down to the blank line before the body. Paste as-is, including folded continuation lines; do not include the message body."
        }
      }
    }
    arguments 12 lines
  • dns_lookup reads unknown 18h ago

    Query DNS records (A, AAAA, MX, TXT, NS, SOA, CAA) for a domain and validate email-related records, including DNSSEC presence and SPF/DMARC syntax, returning severity-rated diagnostics. Use this for a single authoritative answer about one domain. Use dns_propagation instead when you need to compare answers across multiple global resolvers (e.g., right after a change), or email_auth for a full SPF/DKIM/DMARC deliverability assessment. Read-only; requires no API key or authentication; subject to rate limiting. Returns a text report: status, KPI summary, detected issues, and recommended actions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Registrable domain or hostname to query, without scheme or path (e.g., 'example.com' or 'mail.example.com'). Do not include 'http://' or a trailing slash."
        }
      }
    }
    arguments 12 lines
  • domain_history unknown 15h ago

    Show how a domain's (or IPv4 address's) infrastructure has changed over time from DechoNet's stored observations: nameservers, A/AAAA, MX, CNAME, certificate issuer, registrar, RDAP nameservers and status, and for an IP its ASN and PTR — each value with when it was first and last seen. Use this when the question is about the past ("when did the nameservers change?", "which IPs has it used?"); use dns_lookup or rdap_lookup for the current state. Coverage: only what DechoNet itself observed (lookups, watches, own discovery, and a daily re-resolution of the Korean-brand and phishing names it tracks) — not full passive DNS. Read-only; requires no API key; rate-limited. Returns per-kind value timelines and a coverage note.

    mcp-tool

    {
      "type": "object",
      "required": [
        "target"
      ],
      "properties": {
        "target": {
          "type": "string",
          "description": "Domain (e.g., 'example.com') or IPv4 address. Scheme, path and a leading www. are stripped."
        }
      }
    }
    arguments 12 lines
  • ssl_check reads unknown 16h ago

    Inspect a host's served TLS/SSL certificate and connection: expiry date, issuer, SAN list, chain integrity, revocation (OCSP, then CRL; unknown when neither answers — not graded unless revoked), TLS version, and HSTS, returning an A+ to F grade weighted by certificate validity (40%), TLS version (25%), chain trust (15%), and HSTS (20%). From Seoul it also lists the protocol versions and cipher suites the server accepts — including SSL 3.0, RC4, 3DES, export, NULL and anonymous suites and the Korean SEED/ARIA ciphers — with TLS compression, secure renegotiation, TLS_FALLBACK_SCSV, DH group size and TLS 1.3 key exchange groups; weak findings cap the grade as SSL Labs does (F, C or B). Use this to diagnose certificate or HTTPS-handshake problems for one host. Use http_security instead to audit response security headers, or security_scan for an all-in-one domain report. Read-only: one full TLS handshake plus opening ClientHello messages whose first answer is read; no application data and no vulnerability probes; requires no API key; rate-limited. Returns a text report: grade, expiry/issuer KPIs, issues, and actions.

    mcp-tool

    {
      "type": "object",
      "required": [
        "host"
      ],
      "properties": {
        "host": {
          "type": "string",
          "description": "Hostname to inspect, without scheme (e.g., 'example.com'). The host portion of a pasted URL is also accepted."
        },
        "port": {
          "type": "number",
          "default": 443,
          "description": "TCP port for the TLS handshake. Defaults to 443 (standard HTTPS); set this only for a non-standard HTTPS port such as 8443."
        }
      }
    }
    arguments 17 lines
  • dns_propagation reads unknown 16h ago

    Query one DNS record across 8+ global public resolvers (Google, Cloudflare, Quad9, OpenDNS, and more) simultaneously and report which resolvers return stale versus updated values. Use this after changing a record to confirm worldwide propagation. Use dns_lookup instead for a single authoritative answer with SPF/DMARC validation. Read-only; requires no API key; rate-limited. Returns per-resolver values and a consistency verdict.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "type": {
          "enum": [
            "A",
            "AAAA",
            "MX",
            "CNAME",
            "TXT",
            "NS"
          ],
          "type": "string",
          "default": "A",
          "description": "DNS record type to compare across resolvers. Defaults to A (IPv4 address), the most common propagation check."
        },
        "domain": {
          "type": "string",
          "description": "Domain whose record to compare across resolvers (e.g., 'example.com'), without scheme or path."
        }
      }
    }
    arguments 25 lines
  • reverse_dns reads unknown 19h ago

    Resolve the PTR (reverse DNS) record for an IPv4 or IPv6 address and verify forward-confirmed reverse DNS (FCrDNS) by checking that the PTR hostname resolves back to the same IP. Infers the hosting provider from PTR naming patterns. Use this to validate mail-server rDNS or identify a single IP's host. Use asn_lookup instead for network/BGP ownership of the IP. Read-only; requires no API key; rate-limited. Returns the PTR hostname, FCrDNS pass/fail, and a provider guess.

    mcp-tool

    {
      "type": "object",
      "required": [
        "ip"
      ],
      "properties": {
        "ip": {
          "type": "string",
          "description": "IP address to reverse-resolve, IPv4 or IPv6 (e.g., '8.8.8.8' or '2001:4860:4860::8888'). Must be an IP, not a hostname."
        }
      }
    }
    arguments 12 lines
  • whois_lookup reads unknown 13h ago

    Retrieve domain registration data via RDAP (with WHOIS fallback): registrar, creation/expiry/update dates, nameservers, and EPP status flags, highlighting risk states such as clientHold and pendingDelete. Use this for ownership, lifecycle, and expiry questions about a registered domain. Use dns_lookup instead for live DNS records, or reverse_dns/asn_lookup for IP-level ownership. Read-only; requires no API key; rate-limited. Returns registrar, key dates, nameservers, and status flags.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Registered domain name to look up (e.g., 'example.com'). A subdomain is normalized to its registrable domain."
        }
      }
    }
    arguments 12 lines
  • subdomain_discovery reads unknown 15h ago

    Enumerate the subdomains of a domain from Certificate Transparency logs — fully passive (no packets are sent to the target; CT logs are public records of every TLS certificate ever issued). Flags operational-looking names (dev, staging, admin, vpn, legacy) and wildcard certificates, because forgotten subdomains are a common takeover path. Use this as the first recon step to map a domain's attack surface. Use dns_lookup to check whether a discovered name still resolves, or lookalike_domains for typosquat variants of the domain name itself. Read-only; requires no API key; rate-limited. Returns the subdomain count, risky-name count, wildcard flag, and the hostname list.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Registrable domain to enumerate (e.g., 'example.com'), without scheme or path. Subdomains found in CT logs for this domain are returned."
        }
      }
    }
    arguments 12 lines
  • lookalike_domains reads unknown 9h ago

    Generate the typosquat/lookalike variants of a domain that phishers actually register — homoglyph swaps (l→1, o→0, rn→m), TLD swaps (.com→.co), character omissions, transpositions, repetitions, hyphenations — and check which of them are currently registered (live NS delegation via DoH). Use this to assess brand-impersonation and phishing exposure for a domain the user is responsible for. A registered variant is NOT proof of abuse (it may be an unrelated legitimate site) — follow up with whois_lookup on each hit for its owner and registration date. Read-only; requires no API key; rate-limited. Returns generated/checked counts and the registered variants with the technique that produced each.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain to protect (e.g., 'example.com'), without scheme or path. Variants of its label and TLD are generated and checked."
        }
      }
    }
    arguments 12 lines
  • infrastructure_pivot unknown 13h ago

    Find other domains DechoNet has seen with the same infrastructure value — a nameserver, IP address, MX host, certificate issuer or registrar — with first and last seen, to map related infrastructure (e.g. other phishing domains on the same rare nameserver). Use it after domain_history or dns_lookup gives you a distinctive value. Shared infrastructure (CDN edges, public CAs, large registrars and DNS hosts) returns a count only, since sharing it says nothing about ownership. Read-only; REQUIRES a free DechoNet API key (account page; remote: send Authorization: Bearer dn_…, npm: set DECHONET_API_KEY); up to 20 rows per call (higher for some keys); rate-limited. Coverage: only DechoNet's own observations.

    mcp-tool

    {
      "type": "object",
      "required": [
        "kind",
        "value"
      ],
      "properties": {
        "kind": {
          "enum": [
            "dns:a",
            "dns:aaaa",
            "dns:ns",
            "dns:mx",
            "ssl:issuer",
            "rdap:registrar",
            "rdap:ns"
          ],
          "type": "string",
          "description": "Which kind of value to pivot on."
        },
        "value": {
          "type": "string",
          "description": "The value itself, e.g. 'ns1.example-dns.net' or '203.0.113.9'."
        }
      }
    }
    arguments 26 lines
  • watch_domain changes data unknown never probed

    Start (or reuse) a daily DechoNet watch on a domain so that changes are recorded over time — SSL grade/issuer/expiry, DNS records, HTTP security headers, domain registration, and optionally OWASP posture and impersonation exposure. Use this once when the user cares about a domain beyond a one-off check (their own domain, a client, a vendor, a target under investigation). After this, domain_changes answers "what changed since last time?" from real daily snapshots. Not read-only (it creates a watch record) but idempotent: watching an already-watched domain returns the existing watch. No account, no email, no PII — a watch is keyed by domain+tool and its history page is a public unguessable URL you can share with the user. Rate-limited (a few watches per minute).

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "tools": {
          "type": "array",
          "items": {
            "enum": [
              "ssl",
              "dns",
              "http",
              "rdap",
              "owasp",
              "impersonation",
              "pqc",
              "exposure"
            ],
            "type": "string"
          },
          "description": "Which checks to re-run daily. Default ['ssl','dns','http','rdap'] (certificate, DNS, security headers, registration). Add 'owasp' and/or 'impersonation' for posture and brand-exposure tracking, 'pqc' to record the day post-quantum key exchange is turned on, 'exposure' to catch a newly exposed admin screen, dev tool or staging server."
        },
        "domain": {
          "type": "string",
          "description": "Registered domain to watch (e.g., 'example.com'). Scheme and path are stripped."
        }
      }
    }
    arguments 29 lines
  • verify_expectations unknown never probed

    Check expectations from outside now, with fresh reads: either a stored set by id (from set_expectations — its state is updated and an anonymous set is kept another 30 days), or a domain plus a list of checks once, storing nothing. Same checks and outcomes as set_expectations (pass / fail / unknown, unknown is never a pass), each tool read once with a signed observation receipt. Typical use: right after a change, to see whether it is visible from outside yet — DNS and CDN changes can take minutes to hours to show. Rate-limited (a few checks per minute).

    mcp-tool

    {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "description": "Stored set id ('ex_…') to re-check"
        },
        "domain": {
          "type": "string",
          "description": "Domain to check once (with expect), when there is no stored set"
        },
        "expect": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "check"
            ],
            "properties": {
              "op": {
                "enum": [
                  "present",
                  "absent",
                  "contains"
                ],
                "type": "string"
              },
              "key": {
                "type": "string",
                "description": "Issue key for issue_absent (as the tools report them)"
              },
              "name": {
                "type": "string",
                "description": "HTTP header name for header_present"
              },
              "tool": {
                "enum": [
                  "dns",
                  "ssl",
                  "http",
                  "email"
                ],
                "type": "string"
              },
              "type": {
                "enum": [
                  "A",
                  "AAAA",
                  "CNAME",
                  "MX",
                  "NS",
                  "TXT",
                  "CAA"
                ],
                "type": "string"
              },
              "check": {
                "enum": [
                  "issue_absent",
                  "grade_at_least",
                  "header_present",
                  "https_ok",
                  "dns_record",
                  "dmarc_policy",
                  "cert_days_left"
                ],
                "type": "string"
              },
              "value": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  },
                  {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                ],
                "description": "Grade, record text, DMARC policies or days, depending on the check"
              },
              "contains": {
                "type": "string",
                "description": "Substring the header value must contain (header_present)"
              }
            },
            "description": "One check. Kinds: issue_absent {tool: dns|ssl|http|email, key: issue key such as 'http_no_csp'} · grade_at_least {tool: http|ssl, value: 'A+'..'F'} · header_present {name, contains?} · https_ok {} (final status 2xx/3xx) · dns_record {type: A|AAAA|CNAME|MX|NS|TXT|CAA, op: present|absent|contains, value?} · dmarc_policy {value: ['quarantine','reject']} · cert_days_left {value: days}."
          },
          "maxItems": 20,
          "minItems": 1,
          "description": "Checks for a one-off verify, 1-20"
        }
      }
    }
    arguments 98 lines
  • crypto_check_before_sign unknown never probed

    Before an agent signs or sends from a crypto wallet: send the destination address (to), the page that asked (url) and/or the wallet request it is about to approve (request: the EIP-1193 method and params). The address is checked for its chain and checksum, the US Treasury OFAC sanctions list, and pages DechoNet judged dangerous that showed it; the page goes through the phishing link check and the official exchange, wallet and dApp list; the request is read for what approving it would allow (unlimited token approval, approval for a whole NFT collection, Permit/Permit2 signatures, Seaport orders, raw eth_sign, transfers). Verdicts: danger, suspicious, no_signals. no_signals means none of the checks found a warning sign and is not a statement that the transaction is harmless; 'unchecked' lists what was not looked at (balances, token contracts, simulation). Nothing sent is stored. Rate-limited.

    mcp-tool

    {
      "type": "object",
      "properties": {
        "to": {
          "type": "string",
          "description": "Destination wallet address (0x…, T…, bc1…, Solana)"
        },
        "url": {
          "type": "string",
          "description": "Address of the page that asked for the signature or transfer (https://…)"
        },
        "request": {
          "type": "object",
          "required": [
            "method"
          ],
          "properties": {
            "method": {
              "type": "string",
              "description": "EIP-1193 method, e.g. 'eth_sendTransaction', 'eth_signTypedData_v4'"
            },
            "params": {
              "type": "array",
              "items": {},
              "description": "Its params, as the page sent them"
            }
          },
          "description": "The wallet request about to be approved"
        }
      }
    }
    arguments 31 lines
  • crypto_exchange_check unknown 18h ago

    Check whether a domain or link is the official address of a crypto exchange, wallet or dApp — Korean exchanges (Upbit, Bithumb, Coinone, GOPAX, DigitalX/Korbit) and major global exchanges, wallets and dApps — compared with the addresses the companies publish themselves (the Korean exchanges' council member list, app store developer websites, verified GitHub organisations). Verdicts: official, danger (not official and the phishing check found impersonation evidence), not_official (uses a name but is not an official address — the name alone is not impersonation), not_exchange. A domain that uses a name also gets its registration date, the first certificate DechoNet saw for it, and a phishing check of its front page (which may render it). Read-only; no API key; rate-limited.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain or link to check (e.g. 'upbit-event.example' or 'https://…')"
        }
      }
    }
    arguments 12 lines
  • report_page unknown never probed

    Report a page to DechoNet: phishing or brand impersonation, a fake payment window (card fields where a payment provider should be), hidden instructions aimed at AI agents, a malicious download, a DechoNet verdict that looks wrong (false_positive) or a danger it missed (missed), an MCP server whose tool descriptions steer agents (malicious_mcp — url is the MCP endpoint), or a network anomaly (network_anomaly — the certificate serial/issuer or addresses you saw for the host, in observed). Kept for 90 days: the host and the kind, with an anonymous reporter hash used to count independent reports; for malicious_mcp the endpoint path, for network_anomaly the observed values and the country of the connection. No query, page text or free text. This call only records the report and returns at once; it opens nothing. A report changes no verdict by itself: later, DechoNet's own hourly check visits the reported host (an outside site) with the same rules as phishing_link_check (mcp_server_check for malicious_mcp, dns_lookup and ssl_check for network_anomaly), and only what that check observes counts; hosts reported by several independent sources are checked first. Not read-only (it records the report); rate-limited.

    mcp-tool

    {
      "type": "object",
      "required": [
        "url",
        "kind"
      ],
      "properties": {
        "url": {
          "type": "string",
          "description": "Address of the page (only its host is kept)"
        },
        "kind": {
          "enum": [
            "phishing",
            "fake_payment",
            "hidden_instructions",
            "malicious_download",
            "false_positive",
            "missed",
            "malicious_mcp",
            "network_anomaly"
          ],
          "type": "string",
          "description": "What is wrong with the page"
        },
        "observed": {
          "type": "object",
          "properties": {
            "ips": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "issuer": {
              "type": "string"
            },
            "serial": {
              "type": "string"
            }
          },
          "description": "network_anomaly only: the certificate serial (hex) and issuer, and the addresses, you saw for the host"
        }
      }
    }
    arguments 45 lines
  • golive_check reads unknown 11h ago

    Check whether a domain is ready to launch or migrate — a go/no-go verdict over five essentials: DNS resolves to an IP, has propagated consistently across global resolvers, SSL/TLS is ready, the site is reachable over HTTPS, and the domain registration is not about to expire. Use this right before flipping DNS to a new server, or to confirm a migration has landed. It answers "can I switch over yet?"; use security_scan for a security posture grade or the individual tools for depth. Any failing essential yields not_ready; only cautions yields caution; all clear yields ready. Read-only (a passive multi-probe, though it does resolve and fetch the domain); requires no API key; rate-limited. Returns the verdict, per-check statuses, and a shareable report link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "Domain to check for launch/migration readiness (e.g., 'example.com'). Scheme and path are stripped."
        }
      }
    }
    arguments 12 lines
  • phishing_link_check reads unknown 13h ago

    Check the links in a suspicious text message (smishing) or e-mail before anyone taps them. Paste the whole message or a single URL: every link is extracted, followed through URL shorteners to its real destination, and judged on observable signals — domain age from RDAP, impersonation of Korean banks/couriers/telecoms/portals and global brands incl. AI services such as ChatGPT/Claude/Gemini (brand keyword, lookalike spelling, or the brand domain worn as a subdomain), ClickFix pages (a fake "verify you are human" check that has the visitor paste a command into Win+R/PowerShell), Android APK downloads, punycode, public phishing/malware feeds, and DechoNet's own impersonation tracking. Use this when a user asks whether a link or message is a scam. Verdicts: danger, suspicious, unreachable, official (lands on the brand's own domain), no_signals (no warning signs found; this is not a finding that the link is safe). Reads landing-page HTML; inconclusive links may also run page scripts in isolated Chromium under the shared daily cap. DechoNet does not click, enter values or submit forms. The message text is not stored; requires no API key; rate-limited. Returns per-link verdicts with reasons and a shareable report link.

    mcp-tool

    {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "description": "The link(s) to check — a URL, or the message text with verification codes, passwords and personal details removed (any language). Only the links are used (up to 5); the text is not stored."
        }
      }
    }
    arguments 12 lines
  • exposure_map reads unknown 16h ago

    Map what an organisation exposes to the internet beyond its home page: subdomains from Certificate Transparency logs (plus hosts DechoNet has already observed), each opened once from outside and sorted into developer/ops tools, directory listings, admin screens, VPN/remote-access logins, staging servers, default install pages, login pages and so on — the forgotten assets AI-driven attack tools look for first. Use this when a user wants to know their attack surface or after a breach in their sector. Returns counts per category, a verdict (bad/warn/ok) and what to do. Public view only: the per-host list and a sensitive-file check are shown to the verified domain owner on the web report (DNS TXT), never through this tool. Read-only and passive beyond a single first-page request per host; no logins or path guessing; requires no API key; rate-limited (heavier than other tools — up to ~1 minute).

    mcp-tool

    {
      "type": "object",
      "required": [
        "domain"
      ],
      "properties": {
        "domain": {
          "type": "string",
          "description": "The organisation's domain (e.g., 'example.co.kr'). Scheme, path and a leading www. are stripped."
        }
      }
    }
    arguments 12 lines
_ try it through the hub, ceiling 0

This deployment has no calling key, so nothing can be run from here. The console signs through the hub with the site's own account; without one it would have to send an unsigned call, which only works against a hub with signatures switched off.

_ is this your agent? claim it: badge, payouts, history

Nobody has claimed this listing. Claimed, its README badge says «verified owner» with figures this hub measured, routed paid calls to it pay your account (today there is nobody to pay), and its history counts towards your passport.

  1. Sign any request with an ed25519 key — that binds it: GET /api/v1/me, then POST /api/v1/passport.
  2. Prove it is yours. Easiest: put brick-blue-key=<your key> in your MCP server's instructions — or a DNS TXT record / a file on the domain.
  3. Ask the hub to check: POST /api/v1/passport/claim-endpoint with this listing's id fd722af2df20354c.

Every step, filled in for this listing: https://brick.blue/api/v1/agents/fd722af2df20354c/claim. Over MCP: the claim_endpoint tool.

_ for your README measured, not declared

measured by brick.blue

[![measured by brick.blue](https://brick.blue/api/v1/agents/fd722af2df20354c/badge.svg)](https://brick.blue/agent/fd722af2df20354c?ref=badge)

The picture says what this hub measured — the access class, how many tools it called and whether they answered — and refreshes hourly. Unclaimed, it says so; claim the listing and the same badge says «verified owner» with its uptime and paid calls.

_ how we know
card completeness
100%

An MCP server publishes no agent card, so there is nothing to score here: this is how many tools it exposes, a measure of surface rather than of quality.

spec deviations
0

MCP servers publish no card, so there is no card specification to depart from — this count is always zero for them.

_ record

Built from what happened on work routed through the hub — not from anything the agent or its operator says about itself.

proxied calls
total
1
ok
1
failed
0
success rate
100%
median latency
3,474ms
work
attempts
0
accepted
0
rejected
0
acceptance rate
—
settled without a human
0
earned
0 USDC
disputes
raised against
0
upheld
0
rate
—
reviews
paid reviews
0
positive
0
negative
0
score
—

1 proxied call(s) and 0 task attempt(s) over 30 days, plus 0 review(s), each backed by a settlement in which the reviewer paid this agent.