Digital Infrastructure Exposure MCP Server
**Digital infrastructure exposure reconnaissance** delivered as an MCP server — query it from Claude, Cursor, or any AI agent to assess any domain's attack surface in seconds. This server orchestrates 8 passive data sources in parallel: WHOIS, DNS records, certificate transparency logs, IP geolocation, technology stack detection, Censys internet-wide scanning, NVD CVEs, and the CISA Known Exploited Vulnerabilities catalog.
Maintenance Pulse
90/100Cost Estimate
How many results do you need?
Pricing
Pay Per Event model. You only pay for what you use.
| Event | Description | Price |
|---|---|---|
| full_exposure_audit | All 8 sources: WHOIS + DNS + crt.sh + IP Geo + Tech Stack + Censys + NVD + CISA KEV. | $0.30 |
| subdomain_discovery | crt.sh certificate transparency + DNS + Censys subdomain enumeration. | $0.08 |
| dns_security_audit | SPF/DKIM/DMARC check, dangling CNAME detection, NS redundancy. | $0.08 |
| ssl_certificate_health | Certificate expiry, issuer validation, transparency coverage. | $0.08 |
| tech_stack_vulnerability_match | Detected tech → NVD CVE → CISA KEV active exploitation mapping. | $0.10 |
| hosting_geography_map | IP geolocation + Censys + DNS geographic concentration HHI. | $0.08 |
| internet_service_enumeration | Censys exposed services, open ports, protocols. | $0.08 |
| compare_org_exposure | Multi-axis digital exposure comparison: sprawl, misconfig, vuln, geo. | $0.10 |
Example: 100 events = $30.00 · 1,000 events = $300.00
Connect to your AI agent
Add this MCP server to Claude Desktop, Cursor, Windsurf, or any MCP-compatible client.
https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp{
"mcpServers": {
"digital-infrastructure-exposure-mcp": {
"url": "https://ryanclinton--digital-infrastructure-exposure-mcp.apify.actor/mcp"
}
}
}Documentation
Digital infrastructure exposure reconnaissance delivered as an MCP server — query it from Claude, Cursor, or any AI agent to assess any domain's attack surface in seconds. This server orchestrates 8 passive data sources in parallel: WHOIS, DNS records, certificate transparency logs, IP geolocation, technology stack detection, Censys internet-wide scanning, NVD CVEs, and the CISA Known Exploited Vulnerabilities catalog.
No active scanning. No packets sent to target infrastructure. All data is gathered from public registries, internet-wide scan indexes, and certificate transparency logs. Connect once and your AI agents gain structured security intelligence on any domain — with a composite Digital Exposure Score (0-100) and specific remediation recommendations.
What data can you access?
| Data Point | Source | Example |
|---|---|---|
| 📋 Domain registration, registrar, expiry | WHOIS Lookup | Expires: 2026-04-12, Registrar: Namecheap |
| 🔍 DNS records (A, MX, TXT, CNAME, NS) | DNS Record Lookup | SPF: v=spf1 include:_spf.google.com ~all |
| 🔒 SSL/TLS certificate inventory | crt.sh Certificate Transparency | mail.acmecorp.com, api.acmecorp.com, cdn.acmecorp.com |
| 🌍 IP geolocation, ASN, ISP mapping | IP Geolocation Lookup | AS15169 Google LLC, US (Virginia) |
| 🧱 Tech stack: CMS, frameworks, CDN, analytics | Website Tech Stack Detector | WordPress 6.4, Cloudflare, Google Analytics |
| 🔭 Exposed services, open ports, banners | Censys Host Search | port 443 (nginx/1.24.0), port 22 (OpenSSH 8.9) |
| 🛡️ CVE records with CVSS severity scores | NVD CVE Search | CVE-2023-44487 (CRITICAL) — HTTP/2 Rapid Reset |
| ⚡ Actively exploited vulnerabilities | CISA KEV Catalog | CVE-2023-44487 — known ransomware use: YES |
| 📊 Infrastructure Sprawl Index (0-100) | Composite scoring | Score: 62 — SPRAWLING |
| 🔐 Misconfiguration score (0-100) | Composite scoring | Score: 45 — MODERATE_GAPS, missing DMARC |
| 🗺️ Geographic concentration HHI | Composite scoring | HHI: 7,200 — HIGHLY_CONCENTRATED (1 country) |
| 🎯 Digital Exposure Score (0-100) | Composite scoring | Score: 34 — EXPOSED, 4 recommendations |
MCP Tools
| Tool | Price | Description |
|---|---|---|
full_exposure_audit | $0.045 | Complete digital exposure audit across all 8 sources. Returns the full composite report: Infra Sprawl, Misconfiguration, Tech Vulnerability, Geo Concentration, and Exposure Score. |
subdomain_discovery | $0.045 | Enumerate subdomains via certificate transparency (crt.sh), DNS records, and Censys. Returns subdomain inventory with IP mapping and Infrastructure Sprawl Index. |
dns_security_audit | $0.045 | Audit SPF, DKIM, and DMARC compliance; detect dangling CNAMEs; check NS redundancy; flag domain registration expiry within 60 days. |
ssl_certificate_health | $0.045 | Check SSL/TLS certificate expiry, issuer validation, and certificate transparency coverage. Flags expired, expiring within 30 days, or self-signed certificates. |
tech_stack_vulnerability_match | $0.045 | Detect the website technology stack and cross-reference against NVD CVEs and the CISA KEV catalog. Returns technology-to-exploit pipeline with prioritized remediation. |
hosting_geography_map | $0.045 | Map hosting geography: country distribution, provider concentration using Herfindahl-Hirschman Index (HHI), single-point-of-failure detection, and NS redundancy check. |
internet_service_enumeration | $0.045 | Enumerate internet-facing services via Censys: open ports, protocol versions, service banners, and hosting providers. |
compare_org_exposure | $0.045 | Full exposure profile for a domain: composite score breakdown across all four dimensions with an optional benchmark domain for comparison context. |
Why use Digital Infrastructure Exposure MCP?
Security teams manually gathering digital footprint data spend hours per target: running nmap, querying crt.sh, checking MX records, cross-referencing NVD — and they still miss the CISA KEV cross-reference. Platforms like SecurityScorecard charge $2,000+/year for comparable passive reconnaissance data.
This MCP server delivers the same intelligence pipeline to any AI agent in a single tool call. Your agent asks full_exposure_audit for a domain and receives a structured JSON report with a composite score, four dimensional sub-scores, and specific remediation steps — in under 90 seconds, for $0.045.
Benefits of running on the Apify platform:
- Scheduling — run exposure audits on a daily or weekly cadence to detect new subdomains or certificate changes automatically
- API access — trigger from Python, JavaScript, or any HTTP client for programmatic integration into security workflows
- Proxy rotation — data collection routes through Apify's proxy infrastructure for reliable access to all data sources
- Monitoring — get Slack or email alerts when runs fail or return unexpected results
- Integrations — connect results to Zapier, Make, Google Sheets, HubSpot, or outgoing webhooks for SIEM ingestion
Features
- 8 data sources in parallel — WHOIS, DNS, crt.sh, IP geolocation, tech stack detection, Censys, NVD CVE, and CISA KEV all queried simultaneously using
Promise.allfor sub-90-second response times - Infrastructure Sprawl Index — scores 0-100 across four components: subdomain count (max 30 pts), unique IP and DNS diversity (max 25 pts), geographic distribution (max 25 pts), and Censys-exposed service count (max 20 pts)
- Misconfiguration Detection — independently scores email security gaps (SPF/DKIM/DMARC, max 30 pts), certificate issues (expired or expiring within 30 days, self-signed, max 30 pts), DNS/WHOIS hygiene (dangling CNAMEs pointing to S3, Heroku, GitHub, Azure; domain expiry within 60 days, max 25 pts)
- Technology-to-CVE pipeline — maps detected technologies from the tech stack detector against NVD CVE records, scoring CRITICAL CVEs at 8 pts each and HIGH CVEs at 4 pts each, with a 30-point CISA KEV bonus for actively exploited vulnerabilities confirmed in ransomware campaigns
- HHI-based geographic concentration scoring — applies the Herfindahl-Hirschman Index to both country and provider distributions, flagging HHI above 5,000 as highly concentrated (a single-country, single-provider setup scores 10,000)
- Composite Digital Exposure Score — weighted formula: Misconfiguration × 0.30 + Tech Vulnerability × 0.30 + Infra Sprawl × 0.20 + Geo Concentration × 0.20, inverted to a 0-100 security posture scale
- 5-level verdict labels —
HARDENED,ACCEPTABLE,EXPOSED,HIGH_RISK,CRITICAL_EXPOSUREwith automatic override: CRITICAL tech vulnerability + CRITICAL misconfiguration always returnsCRITICAL_EXPOSUREregardless of other scores - Specific remediation recommendations — each report includes a prioritized action list derived from which dimensions scored poorly (CISA KEV patches, DMARC/SPF/DKIM setup, subdomain audit, geo diversification, SSL renewal)
- Dangling CNAME detection — specifically checks for CNAMEs pointing to S3, Heroku, GitHub, Azure, and CloudFront endpoints that may be claimable by a third party
- NS redundancy check — flags single nameserver configurations as DNS single points of failure
- Passive-only data collection — all data sourced from public registries, certificate transparency logs, and pre-existing internet scan indexes; no packets sent to target infrastructure
Use cases for digital infrastructure exposure assessment
Vendor and third-party risk management
Security and procurement teams need quantified risk scores before onboarding new vendors and during ongoing monitoring. Run full_exposure_audit against each vendor domain to generate a Digital Exposure Score that feeds into your vendor risk register. A vendor with CISA KEV matches and missing DMARC gets flagged for remediation before contract signing, not after a breach.
Penetration testing OSINT phase
Pentesters and red teams spend the first phase of an engagement mapping the target's attack surface. Run subdomain_discovery and internet_service_enumeration to enumerate certificate-issued subdomains, open ports, and service banners before active testing begins. The passive approach leaves no footprint and covers ground that manual crt.sh querying misses.
Cyber insurance underwriting and renewal
Underwriters and brokers assessing cyber insurance applications need structured evidence of security posture. Run full_exposure_audit and tech_stack_vulnerability_match to produce a quantified exposure profile. Exploitable CVEs and infrastructure sprawl metrics inform premium calculation and policy conditions.
Internal IT asset discovery and shadow IT
IT and security operations teams often have incomplete CMDBs. Certificate transparency logs reveal every SSL certificate ever issued for a domain — including subdomains standing up shadow IT projects. Run subdomain_discovery monthly to detect assets that do not appear in your asset inventory.
DNS and email security compliance auditing
Organizations implementing DMARC enforcement or preparing for email authentication compliance (e.g., Google/Yahoo bulk sender requirements) need a baseline audit. Run dns_security_audit to check SPF, DKIM, and DMARC record presence, detect dangling CNAMEs, and flag domain registration lapse risk.
Mergers, acquisitions, and investment due diligence
M&A analysts and investors assessing technology companies need to understand the target's digital hygiene. Run compare_org_exposure to generate a structured exposure profile covering all four risk dimensions. Known exploited vulnerabilities in the tech stack materially affect valuation and post-acquisition remediation budget.
How to query digital infrastructure exposure data
-
Connect the MCP server to your AI client — Add the server URL
https://digital-infrastructure-exposure-mcp.apify.actor/mcpto Claude Desktop, Cursor, Windsurf, or any MCP-compatible client (see the connection section below). You need an Apify account and API token. -
Ask your agent to audit a domain — Provide the target domain name (e.g.,
acmecorp.com) and specify what you need. Your agent selects the appropriate tool automatically, or you can request a specific tool by name. -
Wait 30-90 seconds — The server queries up to 8 data sources in parallel. Most single-tool calls complete in under 45 seconds. The
full_exposure_auditorchestrates all 8 sources and typically returns in 60-90 seconds. -
Review the structured report — The agent presents the composite score, dimensional sub-scores, and prioritized recommendations in natural language. Raw JSON is available for programmatic integration.
MCP tool parameters
| Tool | Parameter | Type | Required | Description |
|---|---|---|---|---|
full_exposure_audit | domain | string | Yes | Target domain (e.g., acmecorp.com) |
full_exposure_audit | includeSubdomains | boolean | No | Include subdomain enumeration in the audit |
subdomain_discovery | domain | string | Yes | Base domain to enumerate subdomains for |
dns_security_audit | domain | string | Yes | Domain to audit DNS security for |
ssl_certificate_health | domain | string | Yes | Domain to check SSL certificates for |
tech_stack_vulnerability_match | domain | string | Yes | Domain to detect tech stack and match CVEs |
tech_stack_vulnerability_match | technology | string | No | Specific technology name to search CVEs for |
hosting_geography_map | domain | string | Yes | Domain to map hosting geography for |
internet_service_enumeration | domain | string | Yes | Domain or IP to enumerate services for |
compare_org_exposure | domain | string | Yes | Domain to analyze |
compare_org_exposure | benchmark | string | No | Benchmark domain for comparison context |
Output example
A full_exposure_audit call for acmecorp.com returns:
{
"domain": "acmecorp.com",
"compositeScore": 38,
"verdict": "HIGH_RISK",
"infraSprawl": {
"score": 62,
"subdomainCount": 34,
"uniqueIPs": 11,
"geoRegions": 4,
"sprawlLevel": "SPRAWLING",
"signals": [
"34 subdomains discovered — large attack surface",
"Infrastructure spans 4 countries — geographic sprawl",
"12 exposed services found via Censys — large service footprint"
]
},
"misconfiguration": {
"score": 58,
"emailSecurityGaps": 2,
"certIssues": 3,
"dnsIssues": 2,
"misconfigLevel": "SIGNIFICANT",
"signals": [
"Missing SPF record — email spoofing risk",
"Missing DMARC record — no email authentication enforcement",
"3 certificate issues — expired or soon-expiring certs",
"Domain expiring within 60 days — registration lapse risk"
]
},
"techVuln": {
"score": 74,
"techsDetected": 9,
"cveMatches": 7,
"kevMatches": 2,
"vulnLevel": "HIGH",
"signals": [
"2 CRITICAL CVEs found — immediate patching required",
"4 HIGH severity CVEs — significant vulnerability exposure",
"2 CISA Known Exploited Vulnerabilities — actively targeted"
]
},
"geoConcentration": {
"score": 71,
"countries": 1,
"providers": 1,
"concentrationLevel": "HIGHLY_CONCENTRATED",
"signals": [
"Country HHI 8,450 — highly concentrated hosting geography",
"Provider HHI 9,100 — single provider dependency",
"Single NS server — DNS single point of failure"
]
},
"allSignals": [
"34 subdomains discovered — large attack surface",
"Infrastructure spans 4 countries — geographic sprawl",
"Missing SPF record — email spoofing risk",
"Missing DMARC record — no email authentication enforcement",
"3 certificate issues — expired or soon-expiring certs",
"Domain expiring within 60 days — registration lapse risk",
"2 CRITICAL CVEs found — immediate patching required",
"2 CISA Known Exploited Vulnerabilities — actively targeted",
"Single NS server — DNS single point of failure"
],
"recommendations": [
"Implement SPF/DKIM/DMARC — email security gaps detected",
"Patch CISA KEV vulnerabilities immediately — actively exploited",
"Run vulnerability scan and patch critical/high CVEs",
"Audit subdomain inventory — reduce attack surface",
"Diversify hosting geography — single point of failure",
"Renew or replace expired/expiring SSL certificates",
"Engage external penetration testing — high digital exposure risk"
]
}
Output fields
| Field | Type | Description |
|---|---|---|
domain | string | Target domain that was audited |
compositeScore | number | Overall security posture score, 0-100 (higher = more secure) |
verdict | string | HARDENED, ACCEPTABLE, EXPOSED, HIGH_RISK, or CRITICAL_EXPOSURE |
infraSprawl.score | number | Infrastructure sprawl sub-score, 0-100 (higher = more sprawl) |
infraSprawl.subdomainCount | number | Unique subdomains discovered via certificate transparency |
infraSprawl.uniqueIPs | number | Unique IP addresses resolved from DNS records |
infraSprawl.geoRegions | number | Number of countries hosting infrastructure |
infraSprawl.sprawlLevel | string | MINIMAL, CONTAINED, MODERATE, SPRAWLING, UNCONTROLLED |
infraSprawl.signals | array | Human-readable findings for this dimension |
misconfiguration.score | number | Misconfiguration severity score, 0-100 |
misconfiguration.emailSecurityGaps | number | Number of missing email security records (SPF/DKIM/DMARC) |
misconfiguration.certIssues | number | Number of certificate problems detected |
misconfiguration.dnsIssues | number | Number of DNS/WHOIS issues (dangling CNAMEs, expiry risk) |
misconfiguration.misconfigLevel | string | HARDENED, MINOR_GAPS, MODERATE_GAPS, SIGNIFICANT, CRITICAL |
misconfiguration.signals | array | Specific misconfiguration findings |
techVuln.score | number | Technology vulnerability score, 0-100 |
techVuln.techsDetected | number | Unique technologies identified on the website |
techVuln.cveMatches | number | CVE records matched to detected technologies |
techVuln.kevMatches | number | CISA Known Exploited Vulnerabilities matched |
techVuln.vulnLevel | string | MINIMAL, LOW, MODERATE, HIGH, CRITICAL |
techVuln.signals | array | CVE and KEV findings with severity |
geoConcentration.score | number | Hosting concentration score, 0-100 (higher = more concentrated) |
geoConcentration.countries | number | Number of countries hosting infrastructure |
geoConcentration.providers | number | Number of distinct hosting providers/ASNs |
geoConcentration.concentrationLevel | string | DISTRIBUTED, MODERATE, CONCENTRATED, HIGHLY_CONCENTRATED, SINGLE_POINT |
geoConcentration.signals | array | HHI scores, single-provider warnings, NS redundancy |
allSignals | array | All signals from all four dimensions, merged |
recommendations | array | Prioritized remediation steps derived from scoring |
How much does it cost to audit digital infrastructure exposure?
This MCP server uses pay-per-event pricing — each tool call costs $0.045. Platform compute costs are included. All 8 tools are priced identically. There is no monthly subscription.
| Scenario | Tool calls | Cost per call | Total cost |
|---|---|---|---|
| Quick domain check | 1 | $0.045 | $0.045 |
| Full vendor audit (all 7 tools) | 7 | $0.045 | $0.315 |
| Weekly vendor monitoring (10 domains) | 10 | $0.045 | $0.45 |
| M&A due diligence (50 targets) | 50 | $0.045 | $2.25 |
| Enterprise program (500 vendors/month) | 500 | $0.045 | $22.50 |
You can set a maximum spending limit per run to control costs. The actor stops when your budget is reached.
Compare this to SecurityScorecard at $2,000+/year or BitSight at similar tiers — with this MCP, a 500-vendor monitoring program costs $22.50/month with no subscription commitment and no annual contract. The free Apify tier includes $5 of monthly credits, covering over 100 tool calls with no payment method required.
How to connect this MCP server
Claude Desktop
Add the following to your claude_desktop_config.json:
{
"mcpServers": {
"digital-infrastructure-exposure": {
"url": "https://digital-infrastructure-exposure-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor / Windsurf / Cline
Add the MCP server URL in your client's MCP configuration panel:
https://digital-infrastructure-exposure-mcp.apify.actor/mcp
Include your Apify API token as a Bearer token in the Authorization header.
Python (direct HTTP)
import requests
import json
response = requests.post(
"https://digital-infrastructure-exposure-mcp.apify.actor/mcp",
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
json={
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "full_exposure_audit",
"arguments": {"domain": "acmecorp.com"}
},
"id": 1
}
)
result = response.json()
report = json.loads(result["result"]["content"][0]["text"])
print(f"Domain: {report['domain']}")
print(f"Composite Score: {report['compositeScore']}/100")
print(f"Verdict: {report['verdict']}")
for rec in report["recommendations"]:
print(f" - {rec}")
JavaScript / TypeScript
const response = await fetch(
"https://digital-infrastructure-exposure-mcp.apify.actor/mcp",
{
method: "POST",
headers: {
"Content-Type": "application/json",
Authorization: "Bearer YOUR_APIFY_TOKEN",
},
body: JSON.stringify({
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "dns_security_audit",
arguments: { domain: "acmecorp.com" },
},
id: 1,
}),
}
);
const data = await response.json();
const result = JSON.parse(data.result.content[0].text);
console.log(`Misconfig Level: ${result.misconfiguration.misconfigLevel}`);
console.log(`Email Security Gaps: ${result.misconfiguration.emailSecurityGaps}`);
result.misconfiguration.signals.forEach(s => console.log(` - ${s}`));
cURL
# Full exposure audit
curl -X POST "https://digital-infrastructure-exposure-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "full_exposure_audit",
"arguments": {"domain": "acmecorp.com"}
},
"id": 1
}'
# DNS security audit only
curl -X POST "https://digital-infrastructure-exposure-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "dns_security_audit",
"arguments": {"domain": "acmecorp.com"}
},
"id": 2
}'
How Digital Infrastructure Exposure MCP works
Phase 1 — Parallel data collection across 8 sources
When a tool is called, the server constructs an array of actor calls mapped to pre-registered Apify actor IDs (actor-client.ts). All calls execute simultaneously via Promise.all with a 120-second timeout and 512 MB memory cap per sub-actor. The actor map resolves actor names to IDs: WHOIS (M7WwJi9RsIxqCtxsh), DNS (k1EsC3laNunPVzudh), crt.sh (4Y2KiVoSkeyjPfhPS), IP geolocation (04JaB1rtCNabRa2tf), tech stack detector (mBdMOhOMY7XtwX99T), Censys (2jY2b2r4VG46zxsC6), NVD CVE (36Kmjy7TucAUVh4SN), and CISA KEV (baoJ9EQl0Rb3hWYMv). Failed sub-actor calls return empty arrays and do not abort the report — the composite score degrades gracefully.
Phase 2 — Dimensional scoring across four models
scoring.ts runs four independent scoring functions against the collected data:
Infrastructure Sprawl (scoreInfraSprawl): Extracts unique subdomain names from crt.sh common_name and name_value fields into a deduplicated Set. Scores subdomain count on a stepped scale (≥50 = 30 pts, ≥20 = 22 pts, ≥10 = 15 pts). Adds unique IP/AAAA addresses from DNS A/AAAA records and scores DNS record volume. Geographic distribution scores country count at 3 pts each. Exposed Censys services score at 2 pts each.
Misconfiguration (scoreMisconfiguration): Iterates DNS TXT records checking for v=spf1, v=dkim, and v=dmarc substrings. Each missing email security record adds 10 pts to the email score (max 30). Certificate expiry is checked by parsing not_after / expiry / notAfter fields from crt.sh results — expired certs score 3 pts each, expiring within 30 days score 1 pt each. CNAME values are pattern-matched against s3, herokuapp, github, and azure strings to detect dangling subdomain takeover candidates. WHOIS expiry dates within 60 days add a domain lapse signal.
Technology Vulnerability (scoreTechVulnerability): Collects unique technology names from the tech stack detector into a Set. CRITICAL CVEs from NVD score 8 pts each; HIGH CVEs score 4 pts. CISA KEV entries confirmed with knownRansomwareCampaignUse === "known" score 3 pts each (others score 1 pt). A compound score of up to 15 pts activates when both critical CVEs and CISA KEV matches exist simultaneously.
Geographic Concentration (scoreGeoConcentration): Computes Herfindahl-Hirschman Index (HHI) separately for country distribution and provider/ASN distribution across all geolocated IPs. HHI for single-country or single-provider infrastructure reaches 10,000 (maximum concentration). NS record count from DNS determines nameserver redundancy — a single NS server scores 15 pts.
Phase 3 — Composite scoring and report assembly
The composite exposure score is computed as a weighted sum: Misconfiguration × 0.30 + TechVuln × 0.30 + InfraSprawl × 0.20 + GeoConcentration × 0.20, then inverted: compositeScore = 100 - riskScore. This means a higher composite score indicates better security posture (closer to a traditional security rating). A critical override rule applies: if both techVuln.vulnLevel === 'CRITICAL' and misconfiguration.misconfigLevel === 'CRITICAL', the verdict is forced to CRITICAL_EXPOSURE regardless of the numeric score. Recommendations are generated deterministically from which thresholds were breached.
Tips for best results
-
Start with
full_exposure_auditfor unknown targets. It runs all 8 sources in parallel and gives you the complete picture in one call. Use focused tools (dns_security_audit,ssl_certificate_health) only when you already know which dimension you want to explore. -
Use
tech_stack_vulnerability_matchwith thetechnologyparameter when you know the exact product. Providingtechnology: "Apache 2.4.49"gives more precise CVE results than domain-based inference. This is especially useful when you already have a known tech stack and want to scope vulnerability exposure quickly. -
Pair
subdomain_discoverywithinternet_service_enumerationfor OSINT phases. Run subdomain discovery first to get the inventory, then pipe interesting subdomains intointernet_service_enumerationindividually for port and banner detail. -
Schedule
dns_security_auditweekly for domains you control. DMARC and SPF records are frequently broken by DNS changes. Automated weekly monitoring catches regressions before attackers do. Use Apify Schedules with a webhook to Slack for alerts. -
Use
compare_org_exposurefor portfolio monitoring. The tool's structured JSON output (with dimensional scores as separate fields) is easy to insert into a spreadsheet or database for trend tracking across a portfolio of vendor domains. -
Interpret composite scores with both the number and the verdict. A score of 39 (
HIGH_RISK) and a score of 41 (EXPOSED) are numerically close but represent different verdict bands. Always report the verdict label alongside the numeric score to avoid threshold-gaming when monitoring over time. -
The free Apify tier covers over 100 tool calls. Each call costs $0.045. Apify's free $5/month credit runs approximately 111 calls — enough for a full vendor risk assessment of 15-20 organizations using
full_exposure_audit.
Combine with other Apify actors and MCP servers
| Actor / MCP | How to combine |
|---|---|
| WHOIS Domain Lookup | Run standalone WHOIS for ownership history and registrar analysis without triggering a full audit charge |
| Website Tech Stack Detector | Use directly when you only need technology fingerprinting, not the full CVE pipeline |
| Company Deep Research | Enrich the exposure report with corporate ownership, financial data, and news coverage for full due diligence packages |
| Competitor Analysis Report | Combine with compare_org_exposure to benchmark a competitor's digital hygiene alongside their market positioning |
| Website Change Monitor | Monitor target domains for content changes and correlate with new subdomains found by subdomain_discovery |
| B2B Lead Qualifier | Score prospects by digital hygiene — companies with CRITICAL_EXPOSURE may be poor technology buyers or acquisition targets |
| HubSpot Lead Pusher | Push exposure scores directly into HubSpot as custom contact or company properties for sales and risk workflows |
Limitations
- Passive data only — This server queries existing scan indexes and public registries. It does not actively probe target infrastructure. Some recent changes (new subdomains, patched services) may not be reflected in Censys or crt.sh indexes for up to 48-72 hours after they occur.
- Certificate transparency coverage requires SSL — Subdomains without SSL/TLS certificates will not appear in crt.sh results. Internal-only subdomains and private IP infrastructure are not discoverable.
- Tech-to-CVE matching is heuristic — CVE matching uses the domain as the NVD search term and the
technologyparameter when provided. It does not parse version strings directly from Wappalyzer output to produce exact CPE matches. False positives and false negatives are possible. Use the raw CVE list for manual validation. - CISA KEV results are catalog-wide — The KEV search returns vulnerabilities matching the query term from the full CISA catalog. If the query matches multiple products, the returned KEV count may include entries not directly relevant to the target. Review individual CVE IDs before escalating.
- Censys data reflects pre-existing scans — Censys scans IPv4 space periodically (not real-time). Services that were recently opened or closed may not be reflected accurately.
- No authentication or session testing — This is purely a passive reconnaissance tool. It cannot test login forms, API authentication, or web application vulnerability classes (SQLi, XSS, etc.). For active web application testing, use a dedicated DAST tool.
- Domain registration privacy shields WHOIS — If the registrant uses WHOIS privacy (Domains By Proxy, WhoisGuard, etc.), ownership and expiry data may be partially masked.
- Sub-actor failures degrade gracefully — If a data source is temporarily unavailable, the corresponding scoring dimension returns 0 data and the composite score is computed from available dimensions. Check
allSignalsfor coverage gaps.
Integrations
- Zapier — trigger
dns_security_auditon a schedule and post findings to a Slack channel when misconfiguration level reaches SIGNIFICANT or above - Make — orchestrate
full_exposure_auditas part of a vendor onboarding workflow that creates a risk record in Airtable or Notion - Google Sheets — export exposure score data for a portfolio of vendor domains into a spreadsheet for trend analysis
- Apify API — call any tool directly via HTTP POST for integration into existing security platforms, SIEMs, or GRC systems
- Webhooks — receive a webhook payload when an audit completes, enabling integration into incident response workflows
- LangChain / LlamaIndex — use this MCP server as a tool in a LangChain agent that combines exposure data with news retrieval and corporate intelligence for automated security briefings
Troubleshooting
-
Composite score returns 0 or unexpectedly low — This typically means all sub-actors returned empty results. Check that the domain you provided is a valid, publicly accessible internet domain (e.g.,
acmecorp.com, notacmecorporhttps://acmecorp.com). Internal domains,.localhostnames, and IP addresses are not supported. -
Tech vulnerability score is 0 despite visible technology on the site — The tech stack detector discovers technologies from HTTP headers and HTML content. Sites behind strict WAFs, or single-page applications with no server-side rendering, may return minimal tech signals. The CVE search also requires a matching query term — try providing the
technologyparameter explicitly (e.g.,technology: "WordPress"). -
Certificate issues are not being detected — crt.sh may return no results for newly registered domains or domains that have never issued SSL certificates through a browser-trusted CA. Self-hosted internal CAs are not logged to public certificate transparency logs.
-
compare_org_exposureandfull_exposure_auditreturn the same data — Both tools run the full exposure report pipeline.compare_org_exposurereturns a more compact JSON structure optimized for comparison workflows, whilefull_exposure_auditreturns the complete nested report with all raw source data slices. -
Run times exceed 90 seconds — Under high Apify platform load, sub-actor queuing can add latency. This is uncommon. If runs consistently exceed 120 seconds, the sub-actors are hitting their timeout limit — this typically means Censys or NVD returned no results quickly but another source is slow. The actor handles this gracefully and returns whatever data was collected.
Responsible use
- All data accessed by this server is publicly available through open registries, certificate transparency logs, and published internet scan datasets.
- This tool performs passive reconnaissance only. No active port scanning, authentication testing, or vulnerability exploitation is performed.
- Use exposure data in compliance with your jurisdiction's computer fraud and abuse statutes. Assessing your own infrastructure or performing authorized vendor assessments are standard acceptable uses.
- Do not use this tool to target organizations without authorization as part of preparation for unauthorized access.
- For guidance on web scraping and data collection legality, see Apify's legal guide.
FAQ
How does digital infrastructure exposure scoring differ from SecurityScorecard or BitSight? This MCP server applies four independent scoring models (infra sprawl, misconfiguration, tech vulnerability, geographic concentration) against the same underlying passive data sources. SecurityScorecard and BitSight are SaaS platforms with annual contracts starting at $2,000+. This server is pay-per-query at $0.045 per call — no contract, no minimum, and the raw data is returned alongside scores so you can audit the methodology.
Is digital infrastructure exposure scanning legal? Yes. All data comes from publicly available sources: WHOIS registries, DNS resolution, certificate transparency logs (which are public by design), and Censys pre-scanned internet data. No packets are sent to target infrastructure. This is equivalent in legal character to reading publicly published information. See Apify's guide on scraping legality.
Does this tool perform active scanning or send probes to target domains? No. All data is sourced from existing indexes and public registries. Censys data reflects their own periodic IPv4 scanning, not real-time probing by this server. No connection is initiated to the target infrastructure.
How accurate is the Digital Exposure Score? The composite score reflects the quality and completeness of data returned by each sub-actor. Domains with rich public footprints (many certificates, Censys-indexed services, detectable tech stacks) produce well-grounded scores. Domains with minimal internet presence may score misleadingly low on sprawl dimensions simply because there is less to discover — interpret low sprawl scores alongside the raw signal data.
How many domains can I audit in one session? Each tool call audits one domain. For multi-domain workflows, call the tool multiple times in sequence from your AI agent or use the Apify API in a loop. There is no hard limit on the number of calls — only your spending limit controls volume.
Can I use digital infrastructure exposure data for automated vendor monitoring?
Yes. Use Apify Schedules to run full_exposure_audit against a list of vendor domains on a weekly cadence. Combine with webhooks to push score changes to a SIEM or Slack channel. This is one of the most common enterprise use cases.
What is the difference between dns_security_audit and full_exposure_audit?
dns_security_audit queries only DNS records and WHOIS, producing a focused misconfiguration score covering email security (SPF/DKIM/DMARC), dangling CNAMEs, and registration expiry. It runs faster and costs the same ($0.045). Use it when you only need DNS hygiene data. full_exposure_audit adds six more data sources and produces the full composite report with tech vulnerability and geographic concentration dimensions.
How does tech-to-CVE matching work? The server calls the tech stack detector to identify technologies on the target domain, then queries the NVD CVE database with the domain or technology name. CRITICAL CVEs score 8 points each, HIGH CVEs score 4 points each. The CISA KEV catalog is cross-referenced to identify which CVEs are confirmed as actively exploited in the wild — these carry additional weight in the scoring model and trigger immediate-action recommendations.
Can I assess my own company's digital exposure?
Yes, and this is one of the most common use cases. Run full_exposure_audit against your own domains to identify unknown subdomains, missing DNS security records, and tech stack vulnerabilities before external parties discover them. This is equivalent to a low-cost continuous attack surface management program.
Does the server support wildcard domains or IP ranges?
The server accepts standard domain names (e.g., acmecorp.com). IP ranges are accepted by the internet_service_enumeration tool for Censys queries. Wildcard domains (e.g., *.acmecorp.com) are not currently supported as inputs — the base domain is sufficient for subdomain discovery via certificate transparency.
How long do results remain accurate? Certificate transparency results are current within 24-48 hours of certificate issuance. DNS records are queried live and reflect current zone data. Censys data reflects their most recent internet-wide scan, which can be 1-7 days old for any given IP. WHOIS data is live. For monitoring programs, weekly re-auditing is recommended.
Can I integrate the exposure score into my GRC or SIEM platform? Yes. Each tool returns structured JSON. The composite score and dimensional sub-scores are top-level numeric fields designed for database insertion. Use the Apify API or webhooks to pipe results into Splunk, Elastic, ServiceNow, or any GRC platform that accepts JSON via API or webhook.
Help us improve
If you encounter issues, you can help us debug faster by enabling run sharing in your Apify account:
- Go to Account Settings > Privacy
- Enable Share runs with public Actor creators
This lets us see your run details when something goes wrong, so we can fix issues faster. Your data is only visible to the actor developer, not publicly.
Support
Found a bug or have a feature request? Open an issue in the Issues tab on this actor's page. For custom solutions or enterprise integrations, reach out through the Apify platform.
How it works
Configure
Set your parameters in the Apify Console or pass them via API.
Run
Click Start, trigger via API, webhook, or set up a schedule.
Get results
Download as JSON, CSV, or Excel. Integrate with 1,000+ apps.
Use cases
Sales Teams
Build targeted lead lists with verified contact data.
Marketing
Research competitors and identify outreach opportunities.
Data Teams
Automate data collection pipelines with scheduled runs.
Developers
Integrate via REST API or use as an MCP tool in AI workflows.
Related actors
Bulk Email Verifier
Verify email deliverability at scale. MX record validation, SMTP mailbox checks, disposable and role-based detection, catch-all flagging, and confidence scoring. No external API costs.
GitHub Repository Search
Search GitHub repositories by keyword, language, topic, stars, forks. Sort by stars, forks, or recently updated. Returns metadata, topics, license, owner info, URLs. Free API, optional token for higher limits.
Website Content to Markdown
Convert any website to clean Markdown for RAG pipelines, LLM training, and AI apps. Crawls pages, strips boilerplate, preserves headings, tables, and code blocks. GFM support.
Website Tech Stack Detector
Detect 100+ web technologies on any website. Identifies CMS, frameworks, analytics, marketing tools, chat widgets, CDNs, payment systems, hosting, and more. Batch-analyze multiple sites with version detection and confidence scoring.
Ready to try Digital Infrastructure Exposure MCP Server?
Start for free on Apify. No credit card required.
Open on Apify Store