mlab docs

n8n Integration

Automate mlab.sh scanning, CVE intelligence and threat-actor data from your n8n workflows with the official community node package.

The official @mlabsh/n8n-nodes-mlab community package brings core scanning, CVE vulnerability intelligence and threat-actor data into n8n - no code required. It is a verified node, available on n8n Cloud and self-hosted.

npm package: @mlabsh/n8n-nodes-mlab. A verified community node package - installable everywhere: on n8n Cloud and on any self-hosted instance. On self-hosted it requires N8N_COMMUNITY_PACKAGES_ENABLED=true (the default).

What's in the package

The package ships three nodes. Only the Core node needs an API key - CVE and Threat Actors call public endpoints.

NodeServiceAuth
mlab.sh Coremlab.sh/api/v1 - domain / IP / crypto / file scansAPI key
mlab.sh CVEvuln.mlab.sh/api/v1 - CVE search & detailsNone (public)
mlab.sh Threat Actorsactors.mlab.sh/api/v1 - threat-actor intelNone (public)

Installation

In n8n, go to Settings → Community Nodes → Install.

Enter the npm package name:

@mlabsh/n8n-nodes-mlab

Agree to the risk prompt and install. The mlab nodes appear in the nodes panel.

Manually (self-hosted)

# or your N8N_CUSTOM_EXTENSIONS path
cd ~/.n8n/nodes
npm install @mlabsh/n8n-nodes-mlab

Restart n8n afterwards.

Credentials

Only the Core node needs credentials. The CVE and Threat Actors nodes call public, unauthenticated APIs - no credential required.

Create an API key at mlab.sh → Account → Settings → API Keys (it starts with mlab_).

In n8n, add a new mlab.sh API credential and paste the key.

The node sends it as Authorization: token mlab_.... The credential's Test button hits GET /limit/ip to validate the key.

Operations

mlab.sh Core

OperationDescription
Domain → ScanLaunches POST /scan/domain. With Wait for Completion on (default) it polls status and returns the full results payload (subdomains, DNS, SSL, security.txt…).
Domain → Get Status / Get ResultsManage an async scan yourself.
IP → LookupGET /scan/ip - geolocation, ASN, ownership, reverse DNS, abuse contact.
Crypto → LookupGET /scan/crypto - sanctions, labels, risk score. Chain read from the address, except on EVM where it must be passed.
File → UploadPOST /upload/file from an input binary field (max 10MB), returns the sha256.
File → Get ResultsGET /scan/file/results?sha256=…
Quota → GetRemaining daily quota for a scan type (GET /limit/{type}).

mlab.sh CVE

OperationDescription
SearchGET /cve?q=… with optional severity, dateStart, exact, kev filters.
GetGET /cve/CVE-XXXX-XXXX - full detail incl. EPSS & KEV.
Get LatestGET /cve/latest - last 7 days.

mlab.sh Threat Actors

OperationDescription
List / SearchGET /actors with origin, motivation, sector, limit, offset.
GetGET /actors/:slug - aliases, tools, CVEs, techniques.
Get by CVEGET /cves/CVE-XXXX-XXXX/actors - reverse lookup.

Example workflow

A typical alerting flow: a Schedule Triggermlab.sh CVE (Get Latest) → an IF node filtering on kev = true or cvss ≥ 9 → a Slack / Email node. Or enrich inbound IOCs: a Webhookmlab.sh Core (IP Lookup) → route on the risk verdict. Because every node returns structured JSON, you can branch, merge and template the output like any other n8n data.

Requirements

Node ≥ 20.15 (same as n8n). The package is a verified community node, so it installs directly on n8n Cloud as well as on self-hosted instances (where N8N_COMMUNITY_PACKAGES_ENABLED=true is the default).

On this page