Koskamo

attack-surface-mcp-server MCP

A community-driven MCP server for passive external attack-surface mapping. It discovers subdomains via Certificate Transparency logs, resolves DNS records, inspects TLS and HTTP security posture, and retrieves RDAP/WHOIS data. It supports STDIO and Streamable HTTP transports and includes an SSRF guard to prevent access to private or internal network targets.

Package and access

Local package with source-attributed installation metadata. Koskamo does not execute packages during review.

attack-surface-mcp-server MCP logo, by cyanheadsCommunity listingLocal stdioSource reviewed; not executedPublished by cyanheads
Vendor documentation

What you can do with it

  • Map a domain's external surface including CT logs and DNS liveness
  • Resolve DNS records and inspect TLS security posture
  • Retrieve RDAP/WHOIS registry information for assets
  • Enrich IP data with optional Shodan host intelligence

Source and maintenance

Community listingRegistry 0.5.0
Maintenance checked

Packages and installation

Source-provided package data. Koskamo has not executed or live-probed this package.

@cyanheads/attack-surface-mcp-server 0.5.0

npmnpx
@cyanheads/attack-surface-mcp-server package definition
{
  "version": "0.5.0",
  "transport": "stdio",
  "identifier": "@cyanheads/attack-surface-mcp-server",
  "runtimeHint": "npx",
  "registryType": "npm",
  "registryBaseUrl": "https://registry.npmjs.org",
  "environmentVariables": [
    {
      "name": "SHODAN_API_KEY",
      "format": "string",
      "description": "Optional Shodan API key. Enables attacksurface_lookup_host; absent → that one tool returns source_unavailable and the rest of the server works."
    },
    {
      "name": "CERTSPOTTER_API_KEY",
      "format": "string",
      "description": "Optional Certspotter API key. Raises CT-fallback rate limits; absent → free unauthenticated tier."
    },
    {
      "name": "ATTACKSURFACE_DEFAULT_RESOLVERS",
      "format": "string",
      "default": "8.8.8.8,1.1.1.1,9.9.9.9",
      "description": "Comma-separated default DNS resolver IPs for attacksurface_resolve_dns."
    },
    {
      "name": "ATTACKSURFACE_HTTP_USER_AGENT",
      "format": "string",
      "description": "Default User-Agent for attacksurface_probe_http (overridable per call)."
    },
    {
      "name": "ATTACKSURFACE_MAX_SUBDOMAINS",
      "format": "string",
      "default": "200",
      "description": "Map/snapshot resolution cap; enumeration also caps each page at 50 candidates."
    },
    {
      "name": "ATTACKSURFACE_RDAP_BOOTSTRAP_URL",
      "format": "string",
      "default": "https://rdap.org",
      "description": "RDAP bootstrap base URL; override for a private/mirrored RDAP."
    },
    {
      "name": "ATTACKSURFACE_ALLOW_PRIVATE_TARGETS",
      "format": "string",
      "default": "false",
      "description": "Set true to permit non-public target ranges for trusted internal-network assessment; URL and HTTP(S) scheme checks remain enforced."
    },
    {
      "name": "MCP_LOG_LEVEL",
      "format": "string",
      "default": "info",
      "description": "Sets the minimum log level for output (e.g., 'debug', 'info', 'warn')."
    }
  ]
}

Tools

Reported by the attributed source; not independently observed by Koskamo.

No tool definitions available.

Connect from your client

Each snippet configures the same source-provided package; replace placeholders before use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Cursor

Merge this local stdio configuration, replace every placeholder environment value, and restart Cursor. Koskamo has not executed this package.
Cursor configuration
{
  "mcpServers": {
    "attack-surface-mcp-server-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/attack-surface-mcp-server@0.5.0"
      ],
      "env": {
        "SHODAN_API_KEY": "<YOUR_SHODAN_API_KEY>",
        "CERTSPOTTER_API_KEY": "<YOUR_CERTSPOTTER_API_KEY>",
        "ATTACKSURFACE_DEFAULT_RESOLVERS": "<YOUR_ATTACKSURFACE_DEFAULT_RESOLVERS>",
        "ATTACKSURFACE_HTTP_USER_AGENT": "<YOUR_ATTACKSURFACE_HTTP_USER_AGENT>",
        "ATTACKSURFACE_MAX_SUBDOMAINS": "<YOUR_ATTACKSURFACE_MAX_SUBDOMAINS>",
        "ATTACKSURFACE_RDAP_BOOTSTRAP_URL": "<YOUR_ATTACKSURFACE_RDAP_BOOTSTRAP_URL>",
        "ATTACKSURFACE_ALLOW_PRIVATE_TARGETS": "<YOUR_ATTACKSURFACE_ALLOW_PRIVATE_TARGETS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
      }
    }
  }
}

Cline

Merge this local stdio configuration, replace every placeholder environment value, and restart Cline. Koskamo has not executed this package.
Cline configuration
{
  "mcpServers": {
    "attack-surface-mcp-server-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/attack-surface-mcp-server@0.5.0"
      ],
      "env": {
        "SHODAN_API_KEY": "<YOUR_SHODAN_API_KEY>",
        "CERTSPOTTER_API_KEY": "<YOUR_CERTSPOTTER_API_KEY>",
        "ATTACKSURFACE_DEFAULT_RESOLVERS": "<YOUR_ATTACKSURFACE_DEFAULT_RESOLVERS>",
        "ATTACKSURFACE_HTTP_USER_AGENT": "<YOUR_ATTACKSURFACE_HTTP_USER_AGENT>",
        "ATTACKSURFACE_MAX_SUBDOMAINS": "<YOUR_ATTACKSURFACE_MAX_SUBDOMAINS>",
        "ATTACKSURFACE_RDAP_BOOTSTRAP_URL": "<YOUR_ATTACKSURFACE_RDAP_BOOTSTRAP_URL>",
        "ATTACKSURFACE_ALLOW_PRIVATE_TARGETS": "<YOUR_ATTACKSURFACE_ALLOW_PRIVATE_TARGETS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
      }
    }
  }
}

VS Code

Merge this local stdio configuration, replace every placeholder environment value, and restart VS Code. Koskamo has not executed this package.
VS Code configuration
{
  "servers": {
    "attack-surface-mcp-server-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/attack-surface-mcp-server@0.5.0"
      ],
      "env": {
        "SHODAN_API_KEY": "<YOUR_SHODAN_API_KEY>",
        "CERTSPOTTER_API_KEY": "<YOUR_CERTSPOTTER_API_KEY>",
        "ATTACKSURFACE_DEFAULT_RESOLVERS": "<YOUR_ATTACKSURFACE_DEFAULT_RESOLVERS>",
        "ATTACKSURFACE_HTTP_USER_AGENT": "<YOUR_ATTACKSURFACE_HTTP_USER_AGENT>",
        "ATTACKSURFACE_MAX_SUBDOMAINS": "<YOUR_ATTACKSURFACE_MAX_SUBDOMAINS>",
        "ATTACKSURFACE_RDAP_BOOTSTRAP_URL": "<YOUR_ATTACKSURFACE_RDAP_BOOTSTRAP_URL>",
        "ATTACKSURFACE_ALLOW_PRIVATE_TARGETS": "<YOUR_ATTACKSURFACE_ALLOW_PRIVATE_TARGETS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
      }
    }
  }
}

Claude Desktop

Merge this local stdio configuration, replace every placeholder environment value, and restart Claude Desktop. Koskamo has not executed this package.
Claude Desktop configuration
{
  "mcpServers": {
    "attack-surface-mcp-server-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@cyanheads/attack-surface-mcp-server@0.5.0"
      ],
      "env": {
        "SHODAN_API_KEY": "<YOUR_SHODAN_API_KEY>",
        "CERTSPOTTER_API_KEY": "<YOUR_CERTSPOTTER_API_KEY>",
        "ATTACKSURFACE_DEFAULT_RESOLVERS": "<YOUR_ATTACKSURFACE_DEFAULT_RESOLVERS>",
        "ATTACKSURFACE_HTTP_USER_AGENT": "<YOUR_ATTACKSURFACE_HTTP_USER_AGENT>",
        "ATTACKSURFACE_MAX_SUBDOMAINS": "<YOUR_ATTACKSURFACE_MAX_SUBDOMAINS>",
        "ATTACKSURFACE_RDAP_BOOTSTRAP_URL": "<YOUR_ATTACKSURFACE_RDAP_BOOTSTRAP_URL>",
        "ATTACKSURFACE_ALLOW_PRIVATE_TARGETS": "<YOUR_ATTACKSURFACE_ALLOW_PRIVATE_TARGETS>",
        "MCP_LOG_LEVEL": "<YOUR_MCP_LOG_LEVEL>"
      }
    }
  }
}

Let your agent find its tools

Find servers like attack-surface-mcp-server MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.