attack-surface-mcp-server
Passive external attack-surface mapping: CT subdomains, DNS, TLS, HTTP posture, RDAP/WHOIS, Shodan.
The record the registry holds
There is no address to call. This one is a package you install and run yourself, wherever your assistant runs.
{
"server": {
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"name": "io.github.cyanheads/attack-surface-mcp-server",
"description": "Passive external attack-surface mapping: CT subdomains, DNS, TLS, HTTP posture, RDAP/WHOIS, Shodan.",
"repository": {
"url": "https://github.com/cyanheads/attack-surface-mcp-server",
"source": "github"
},
"version": "0.2.0",
"packages": [
{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "@cyanheads/attack-surface-mcp-server",
"version": "0.2.0",
"runtimeHint": "bun",
"transport": {
"type": "stdio"
},
"packageArguments": [
{
"value": "run",
"type": "positional"
},
{
"value": "start:stdio",
"type": "positional"
}
],
"environmentVariables": [
{
"description": "Optional Shodan API key. Enables attacksurface_lookup_host; absent → that one tool returns source_unavailable and the rest of the server works.",
"format": "string",
"isSecret": true,
"name": "SHODAN_API_KEY"
},
{
"description": "Optional Certspotter API key. Raises CT-fallback rate limits; absent → free unauthenticated tier.",
"format": "string",
"isSecret": true,
"name": "CERTSPOTTER_API_KEY"
},
{
"description": "Comma-separated default DNS resolver IPs for attacksurface_resolve_dns.",
"format": "string",
"default": "8.8.8.8,1.1.1.1,9.9.9.9",
"name": "ATTACKSURFACE_DEFAULT_RESOLVERS"
},
{
"description": "Default User-Agent for attacksurface_probe_http (overridable per call).",
"format": "string",
"name": "ATTACKSURFACE_HTTP_USER_AGENT"
},
{
"description": "Cap on subdomains resolved during a map_domain run.",
"format": "string",
"default": "200",
"name": "ATTACKSURFACE_MAX_SUBDOMAINS"
},
{
"description": "RDAP bootstrap base URL; override for a private/mirrored RDAP.",
"format": "string",
"default": "https://rdap.org",
"name": "ATTACKSURFACE_RDAP_BOOTSTRAP_URL"
},
{
"description": "Set true to disable the SSRF guard for internal-network assessment (local/trusted deployments only).",
"format": "string",
"default": "false",
"name": "ATTACKSURFACE_ALLOW_PRIVATE_TARGETS"
},
{
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
"format": "string",
"default": "info",
"name": "MCP_LOG_LEVEL"
}
]
},
{
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"identifier": "@cyanheads/attack-surface-mcp-server",
"version": "0.2.0",
"runtimeHint": "bun",
"transport": {
"type": "streamable-http",
"url": "http://localhost:3010/mcp"
},
"packageArguments": [
{
"value": "run",
"type": "positional"
},
{
"value": "start:http",
"type": "positional"
}
],
"environmentVariables": [
{
"description": "The hostname for the HTTP server.",
"format": "string",
"default": "127.0.0.1",
"name": "MCP_HTTP_HOST"
},
{
"description": "The port to run the HTTP server on.",
"format": "string",
"default": "3010",
"name": "MCP_HTTP_PORT"
},
{
"description": "The endpoint path for the MCP server.",
"format": "string",
"default": "/mcp",
"name": "MCP_HTTP_ENDPOINT_PATH"
},
{
"description": "Authentication mode to use: 'none', 'jwt', or 'oauth'.",
"format": "string",
"default": "none",
"name": "MCP_AUTH_MODE"
},
{
"description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn').",
"format": "string",
"default": "info",
"name": "MCP_LOG_LEVEL"
}
]
}
]
},
"_meta": {
"io.modelcontextprotocol.registry/official": {
"status": "active",
"statusChangedAt": "2026-08-21T17:03:26.796921Z",
"publishedAt": "2026-08-21T17:03:26.796921Z",
"updatedAt": "2026-08-21T17:03:26.796921Z",
"isLatest": true
}
}
}
Draft an Agent Plugin from this
An MCP server is raw capability: some tools, wired to something. An Agent Plugin is the packaging that says what job it does, what it leaves behind and where it stops. The prompt below carries this record and asks for the packaging; your own assistant writes it, and nothing here is sent anywhere.
MCP server
These are the publisher's own words, filed by them with the official MCP registry and mirrored here. This catalog did not read them from the publisher and has not run, called or installed anything.
The publisher's own address
https://github.com/cyanheads/attack-surface-mcp-server
The address the publisher put in their registry record, printed as they wrote it. Nobody here has opened it.