MCP Hub
Back to servers

Wappalyzer MCP

A local MCP server that wraps the Wappalyzer API to identify web technologies, subdomains, and site metadata. It enables users to perform site lookups and access technology categories through natural language interfaces.

glama
Updated
Mar 21, 2026

Wappalyzer MCP

wappalyzer-mcp is a local stdio MCP server that wraps the public Wappalyzer API.

Requirements

  • Node.js 20+
  • A Wappalyzer API key in WAPPALYZER_API_KEY

Install

cd /Users/elbert/Sites/wappalyzer/mcp
npm install

Run

WAPPALYZER_API_KEY=your_api_key npx wappalyzer-mcp

Environment variables:

  • WAPPALYZER_API_KEY required
  • WAPPALYZER_API_BASE_URL optional, defaults to https://api.wappalyzer.com/v2/
  • WAPPALYZER_METADATA_BASE_URL optional, defaults to WAPPALYZER_API_BASE_URL
  • WAPPALYZER_HTTP_TIMEOUT_MS optional, defaults to 30000

The server fails fast on startup if WAPPALYZER_API_KEY is missing.

Tools

lookup_site

Inputs:

  • url required
  • live optional, default false
  • sets optional, default []
  • denoise optional, default true
  • max_age optional, default 2

Notes:

  • exactly one URL is accepted
  • recursive=false is always forced
  • unsupported async-only parameters are not exposed
  • sets is limited to locale, email, phone, contact, social, meta, security, trackers, company, keywords, signals, createdAt, events, and all

Output:

{
  "request": {
    "url": "https://www.wappalyzer.com/",
    "live": false,
    "sets": [
      "company",
      "contact"
    ],
    "denoise": true,
    "max_age": 2,
    "recursive": false
  },
  "data": {},
  "credits": {
    "spent": 1,
    "remaining": 99999
  }
}

lookup_subdomains

Inputs:

  • domain required
  • limit optional, default 100
  • after optional

Notes:

  • exactly one domain is accepted
  • limit must be between 10 and 1000 and a multiple of 10

Output:

{
  "request": {
    "domain": "example.com",
    "limit": 100
  },
  "data": {},
  "credits": {
    "spent": 1,
    "remaining": 99999
  }
}

get_credit_balance

Output:

{
  "credits": 99999
}

Resources

  • wappalyzer://technologies
  • wappalyzer://technologies/{slug}
  • wappalyzer://categories
  • wappalyzer://categories/{slug}

These resources are read-only and fetch public metadata from:

  • GET /technologies/
  • GET /technologies/{slug}/
  • GET /categories/
  • GET /categories/{slug}/

Metadata resources do not send the API key and are cached in-process for 5 minutes.

Client Config

Claude Desktop

Add this to claude_desktop_config.json:

{
  "mcpServers": {
    "wappalyzer": {
      "command": "node",
      "args": [
        "/Users/elbert/Sites/wappalyzer/mcp/index.js"
      ],
      "env": {
        "WAPPALYZER_API_KEY": "your_api_key"
      }
    }
  }
}

Cursor

Add this to .cursor/mcp.json:

{
  "mcpServers": {
    "wappalyzer": {
      "command": "node",
      "args": [
        "/Users/elbert/Sites/wappalyzer/mcp/index.js"
      ],
      "env": {
        "WAPPALYZER_API_KEY": "your_api_key"
      }
    }
  }
}

ChatGPT

Use a remote MCP deployment when you need ChatGPT MCP connector support.

Development

Run automated tests:

npm test

Run live smoke tests with the local secret file:

npm run test:live

Reviews

No reviews yet

Sign in to write a review