← Back to search

io.github.cyanheads/attack-surface-mcp-server

cyanheads Scanned 24d ago

Passive external attack-surface mapping: CT subdomains, DNS, TLS, HTTP posture, RDAP/WHOIS, Shodan.

B
86.8 / 100

Versions

0.1.0latest
first seen Jun 30, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 8

attacksurface_resolve_dns
annotations: verified low

Resolve and enumerate DNS records (A, AAAA, CNAME, MX, NS, TXT, CAA) for one or more hosts across multiple public resolvers, with optional reverse DNS (PTR) for resolved IPs. Reports per-resolver values so propagation gaps and split-horizon DNS are visible. Each host is checked against an SSRF guard; one failing host degrades to a per-host error rather than failing the whole call.

input object notice string output object results array resolversUsed array
readOnlyHint true openWorldHint true idempotentHint true
attacksurface_recon_guidance
annotations: verified low

Synthesize findings gathered so far into a prioritized defensive review plan plus pre-filled follow-up tool calls. Given live hosts, TLS/cert state, missing security headers, detected software versions, and open ports, returns markdown guidance (what to remediate first, which certs are expiring, which versions warrant a CVE check) and concrete next calls — including chaining detected software to an external NVD or OSV vulnerability server. Read-only and offline: reasons only over the state passed in, makes no external calls, and never produces an exploitation plan. For assets you own or are authorized to assess.

plan string input object action string domain string output object finding string nextToolSuggestions array
readOnlyHint true openWorldHint false
attacksurface_enumerate_subdomains
annotations: verified low

Discover subdomains passively from Certificate Transparency logs, then resolve each candidate via DNS to mark which are live. crt.sh is the primary source, Certspotter the fallback (crt.sh is frequently overloaded), and the apex domain's own TLS certificate SAN list a third always-available source. Every discovered name carries its source provenance. No DNS brute-forcing — this reads public logs, it does not probe the target's resolvers. Use only on domains you own or are authorized to assess.

input object domain string output object liveCount number
readOnlyHint true openWorldHint true
attacksurface_inspect_tls
annotations: verified low

Inspect TLS/SSL posture for one or more hosts via a real read-only handshake: negotiated protocol and cipher, the full certificate chain, SANs, validity window, days-to-expiry, issuer, and validation status. Invalid, expired, and self-signed certificates are inspected and reported rather than failing — surfacing posture problems is the point. One handshake per host; no application data is sent. SSRF-guarded; per-host failures degrade to a per-host error.

port number input object notice string output object results array
readOnlyHint true openWorldHint true idempotentHint true
attacksurface_map_domain
annotations: verified low

Flagship workflow: map a domain's external attack surface end to end. Discovers subdomains from Certificate Transparency logs, resolves each to find live hosts, and (at standard+ depth) characterizes each live host's DNS records, TLS posture, and HTTP security headers and technology stack, plus optional RDAP/WHOIS registration. At thorough depth with a Shodan key it adds per-IP Shodan enrichment. Returns a structured surface map and a defensive assessment of observable facts (expiring certs, missing security headers, weak TLS) — never an exploitation plan. All work is passive (public records and the target's own published responses) and SSRF-guarded. Assess only assets you own or are explicitly authorized to test.

cap number depth enum input object shown number domain string output object liveHosts array truncated boolean liveHostCount number subdomainCount number unresolvedSubdomains array
readOnlyHint true openWorldHint true
attacksurface_probe_http
annotations: verified low

Passively probe a single URL with one HTTP(S) GET, following redirects. Returns the final status, the full redirect chain, response headers, a security-header audit (HSTS, CSP, X-Frame-Options, cookie Secure/HttpOnly/SameSite flags, and CORS origin-reflection), and an evidence-bound technology fingerprint (server, framework, CDN, WAF, CMS) drawn from headers and lightweight body markers. Strictly one request per host — no path traversal, parameter injection, or multi-method probing. Each redirect hop is validated against an SSRF guard. Use only on assets you own or are authorized to assess.

url string input object notice string output object finalUrl string checkedAt string finalStatus number technologies array transportError string
readOnlyHint true openWorldHint true
attacksurface_lookup_registration
annotations: verified low

Look up registration and ownership via RDAP (structured JSON), with a WHOIS fallback for TLDs without RDAP or when RDAP is unresponsive. For a domain it returns registrar, status codes, creation/expiry/updated events, nameservers, and DNSSEC; for an IP or CIDR it returns the netblock name, allocation CIDRs, origin ASN, and country. Registry data is frequently redacted or sparse — absent fields are reported as unknown, never inferred. Use only on assets you own or are authorized to assess.

input object notes array output object source enum
readOnlyHint true openWorldHint true
attacksurface_lookup_host
annotations: verified low

Get infrastructure intelligence for a single IP (open ports, service banners, software versions, hostnames, ASN, geo) via Shodan\'s free host endpoint, or run a faceted internet-wide search (mode: "search") that consumes paid Shodan query credits. Requires SHODAN_API_KEY; without it this tool returns a typed source_unavailable error while the rest of the server keeps working. Shodan data reflects Shodan\'s last scan, not a live port state. Use only on assets you own or are authorized to assess.

mode enum input object output object
readOnlyHint true openWorldHint true

Permissions 3

network medium
Server uses network capabilities via: fetch(), net
shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 26

info
Tool 'attacksurface_resolve_dns' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_recon_guidance' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_enumerate_subdomains' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_inspect_tls' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_map_domain' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_probe_http' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_lookup_registration' annotations are consistent annotation_checker · 80%
info
Tool 'attacksurface_lookup_host' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
package.json metadata manifest_parser · 100%
info
Tool: attacksurface_resolve_dns manifest_parser · 75%
info
Tool: attacksurface_recon_guidance manifest_parser · 75%
info
Tool: attacksurface_enumerate_subdomains manifest_parser · 75%
info
Tool: attacksurface_inspect_tls manifest_parser · 75%
info
Tool: attacksurface_map_domain manifest_parser · 75%
info
Tool: attacksurface_probe_http manifest_parser · 75%
info
Tool: attacksurface_lookup_registration manifest_parser · 75%
info
Tool: attacksurface_lookup_host manifest_parser · 75%
info
Required env vars (5) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 90%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 13 components sbom_generator · 100%
high
Hardcoded Password found in cyanheads-attack-surface-mcp-server-8b852d5/skills/api-utils/references/security.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%