Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.NELPROINC/nel-veil

NPM · NEL-VEIL-MCP · SCANNED SEP 20

Free passive security scanning - check any domain's DMARC, TLS, headers, and exposures.

Available components

+3 this week 80 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability66
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3091 tokens (~343/item across 9 items; 9 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management87
  • Stability observed for 26 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 9 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 9 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the io.github.NELPROINC/nel-veil MCP server?

io.github.NELPROINC/nel-veil runs locally as an npm package, launched with npx -y nel-veil-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · nel-veil-mcp

# add to Claude Code
claude mcp add nelproinc-nel-veil -- npx -y nel-veil-mcp
// .cursor/mcp.json
{
  "mcpServers": {
    "nelproinc-nel-veil": {
      "command": "npx",
      "args": [
        "-y",
        "nel-veil-mcp"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "nelproinc-nel-veil": {
      "command": "npx",
      "args": [
        "-y",
        "nel-veil-mcp"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add nelproinc-nel-veil -- npx -y nel-veil-mcp
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "nelproinc-nel-veil": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "nel-veil-mcp"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add nelproinc-nel-veil --command npx --arg -y --arg nel-veil-mcp
# ~/.hermes/config.yaml
mcp_servers:
  nelproinc-nel-veil:
    command: "npx"
    args: ["-y", "nel-veil-mcp"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "nelproinc-nel-veil": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "nel-veil-mcp"
      ]
    }
  }
}
# add to Vellum
assistant mcp add nelproinc-nel-veil -t stdio -c npx -a -y nel-veil-mcp
// mcp.json
{
  "mcpServers": {
    "nelproinc-nel-veil": {
      "command": "npx",
      "args": [
        "-y",
        "nel-veil-mcp"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 19 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

  • 14 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 8 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 6 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 37 to 40. That category is still filling its 30-day observation window: 11 days of observed history at the previous scan, 12 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/nel-veil-mcp@0.2.0

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm

Background: How many MCP packages publish verified provenance →

Dependencies 96 packages
Packages resolved 96
Stale 31
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 9 exposed · ~3,091 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
check_compliance ~581

Answers: what do this domain's public-facing security signals suggest about its alignment with the laws and standards that apply to it? Runs one passive scan and maps the findings onto a register of 102 frameworks — GDPR, UK GDPR, PIPEDA, CCPA/CPRA and the US state privacy acts, NIS2, DORA, the EU AI Act, PIPL, APPI, POPIA, ISO 27001, SOC 2, PCI DSS, NIST CSF and more — returning a per-framework readiness score with the specific provision each finding bears on. READ THE COVERAGE FIELD BEFORE RELAYING A SCORE. Every framework reports how many of the scan categories it relies on were actually observed, as "9/16". A framework whose relevant checks did not run has a NULL score and the tier "Not assessed", with a reason — it is not clean, it is unknown. A clean result over fewer than half a framework's categories is reported as "Partial" rather than "Strong". A framework with no externally observable duty is "Not assessable" and is never scored. Optionally narrow with `frameworks` (ids from list_compliance_frameworks) or `region`. THESE ARE NOT AUDIT RESULTS, NOT A CERTIFICATION AND NOT LEGAL ADVICE. They are indicative readiness signals from public-surface evidence, and every framework also carries a note on what it requires that no external scan can see — consent records, impact assessments, retention schedules, vendor agreements, board governance. Say so when you relay them. It is free and passive, with the same disclosure as scan_domain: no port scanning and no exploit testing, but it does request well-known paths, resolve common subdomains and use the Qualys SSL Labs assessment. Prefer a domain you own or are authorised to assess.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…
frameworksarrayOptional framework ids to restrict the assessment to, e.g. ["gdpr", "uk_gdpr", "iso27001"]. Get valid ids from list_compliance_frameworks. An unknown id is reported as an error rather than silently i…
regionstringOptional region to restrict the assessment to. Combines with `frameworks` if both are given.

No output schema declared.

No examples provided.

check_email_spoofing ~312

Answers: can someone send email that appears to come from this domain? Checks the published SPF, DKIM and DMARC DNS records — whether DMARC exists, whether its policy actually blocks spoofed mail (p=none only monitors, it does not stop anything), whether SPF is present and not overly permissive, and whether the records are syntactically valid. Returns a 0-100 score plus specific findings, each tied to the record it came from, so the exact problem can be quoted. This is a free check that uses public information: DNS records and ordinary HTTP requests. It does no port scanning and no exploit testing. Use this for any question about email spoofing, phishing impersonation, DMARC/SPF/DKIM setup, or whether an email domain is protected. For a broader picture covering TLS, headers and exposed files too, use scan_domain instead.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…

No output schema declared.

No examples provided.

check_exposed_files ~332

Answers: is this domain publicly serving files it should not be? Requests a small, fixed list of well-known sensitive paths — things like .env, .git/config, backup archives and exposed configuration — and reports which return real content rather than a 404. Returns a 0-100 score plus a finding per exposed path. How it works, stated plainly: it makes ordinary GET requests for a small FIXED list of well-known paths. It does not brute-force, fuzz, or enumerate — the list never grows and never adapts to what it finds. Note that these are paths an ordinary crawler would not request (.env, .git/config), so the requests are recognisable in a target's logs as a security check rather than routine crawling. This is a free check that uses public information: DNS records and ordinary HTTP requests. It does no port scanning and no exploit testing. Use this for leaked secrets, exposed configuration, or accidentally published files. It does not discover subdomains.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…

No output schema declared.

No examples provided.

check_security_headers ~285

Answers: does this site send the HTTP response headers that protect visitors in the browser? Checks for Content-Security-Policy, Strict-Transport-Security, X-Content-Type-Options, X-Frame-Options / frame-ancestors, Referrer-Policy and Permissions-Policy — whether each is present and whether its value is actually protective rather than nominal. Returns a 0-100 score plus a finding per header explaining what a missing or weak value exposes. This is a free check that uses public information: DNS records and ordinary HTTP requests. It does no port scanning and no exploit testing. Use this for clickjacking, XSS mitigation, CSP or HSTS questions. It does not check the TLS certificate itself — use check_tls for that.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…

No output schema declared.

No examples provided.

check_subdomain_takeover ~364

Answers: does this domain have DNS records pointing at services someone else could claim? Inspects published DNS records for dangling CNAMEs — entries still pointing at a de-provisioned cloud or SaaS host (an unclaimed bucket, an expired app instance) that an attacker could register and then serve content from a hostname users already trust. Returns a 0-100 score plus a finding per at-risk record, naming the record and the service it points to. How it works, stated plainly: it resolves a small fixed list of common subdomain names (www, mail, dev, staging and similar) and, for any that resolve to a known cloud or SaaS host, makes one ordinary HTTPS GET to check for that provider's unclaimed-resource page. So it is not DNS-only — it does send a small number of HTTP requests to subdomains of the target. It never registers, claims, or modifies anything. This is a free check that uses public information: DNS records and ordinary HTTP requests. It does no port scanning and no exploit testing. Use this for dangling DNS, abandoned cloud resources, or subdomain hijacking risk.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…

No output schema declared.

No examples provided.

check_tls ~326

Answers: does this domain's TLS configuration have known weaknesses? Returns the Qualys SSL Labs assessment grade for the host, plus findings for specific known problems when present: Heartbleed, POODLE, RC4 support, deprecated protocol versions, missing forward secrecy, and certificate chain issues. IMPORTANT — this one is NOT passive. It queries Qualys SSL Labs, which performs an ACTIVE assessment of the target from Qualys's own infrastructure (reusing a recent cached result when Qualys has one). NEL sends no probe itself, but running this does cause the target to be actively tested by a third party. Prefer it for a domain you own or are authorised to test. It is free, and it does no port scanning and no exploit testing of its own. It does NOT report certificate expiry dates, the issuer, or hostname validity — if you need those, read the certificate directly. It also does not check HTTP security headers — use check_security_headers for those.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…

No output schema declared.

No examples provided.

get_scan_report ~169

Answers: what did an earlier NEL VEIL scan find? Fetches the stored results of a scan already run at nelprofessional.com, by its scan id (the scn_... identifier shown on the scan page and in its shareable report link). Returns the saved findings and score for that scan. Use this to pull a scan someone already ran on the website into the conversation — to summarise it, compare it against a later scan, or turn it into a remediation plan. It cannot start a new scan: use scan_domain for that. It only reads scans that exist and are publicly retrievable by id.

NameTypeReqDescription
scan_idstringyesThe scan identifier, e.g. scn_1a2b3c..., from a nelprofessional.com scan page or report link.

No output schema declared.

No examples provided.

list_compliance_frameworks ~216

Answers: which laws, regulations and standards can this tool report on, and which can it not? Returns the full register — 102 frameworks across Canada, the United States, the EU/EEA, the United Kingdom, Asia-Pacific, Africa and global standards (ISO 27001, SOC 2, PCI DSS, NIST CSF and others) — grouped by region, each with its id, jurisdiction, regulator and subject area. Each entry says whether it is externally ASSESSABLE. Around a quarter are not: an anti-money-laundering regime, a consumer-protection statute, a criminal offences provision or a securities disclosure rule imposes no technical safeguard an external scan could ever evidence, and the entry says so in words rather than being quietly scored. Use it to find the id to pass to check_compliance, or to answer 'can you check us against <law>?' honestly. It runs no scan, costs nothing and takes no domain. For an actual assessment use check_compliance.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

scan_domain ~506

Answers: what is this domain's overall security posture? Runs every passive NEL VEIL module in one pass — DNS, email authentication (SPF/DKIM/DMARC), TLS, HTTP security headers, cookies, CORS, exposed files, subdomain-takeover risk, technology fingerprinting, breach exposure, domain reputation, cloud misconfiguration and JavaScript supply chain — and returns findings from all of them with a per-module score. Use this when the question is broad: how secure is this domain, review this vendor, what should we fix first. For a single specific question prefer the narrower tool — check_email_spoofing, check_tls, check_security_headers, check_exposed_files or check_subdomain_takeover — which is faster and easier to read. It is free. What it actually sends, stated plainly, because "passive" means different things to different people. It performs NO port scanning and NO exploit testing. It DOES: request a fixed list of well-known paths, including common admin panels such as /phpmyadmin/ and /manager/html, to report whether they are publicly reachable; resolve a small fixed list of common subdomain names and make one HTTPS request to any that point at a known cloud host; and query Qualys SSL Labs, which performs its own ACTIVE TLS assessment of the target from Qualys's infrastructure. None of that is intrusive in the sense of attacking anything, and all of it is information the domain publishes — but it is more than a crawler does, and it is recognisable in the target's logs as a security scan. Prefer running it against a domain you own or are authorised to assess. Active scanning (port scans, API probing, proof-of-concept exploit checks) is deliberately not available through this MCP server; it requires proving control of the domain and runs only at nelprofessional.com.

NameTypeReqDescription
domainstringyesThe domain to check, e.g. example.com. Bare domains work best; a full URL, a www. prefix, or an address with a userinfo part are all accepted and normalised to the bare hostname. A PUBLIC IP address…

No output schema declared.

No examples provided.

Common questions

What is the io.github.NELPROINC/nel-veil MCP server?

io.github.NELPROINC/nel-veil is an MCP server listed in the public MCP registry as io.github.NELPROINC/nel-veil. Free passive security scanning - check any domain's DMARC, TLS, headers, and exposures. This page covers its npm package (nel-veil-mcp).

Is the io.github.NELPROINC/nel-veil MCP server safe to use?

io.github.NELPROINC/nel-veil scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the io.github.NELPROINC/nel-veil MCP server expose?

io.github.NELPROINC/nel-veil exposes 9 tools: check_email_spoofing, check_tls, check_security_headers, check_exposed_files, check_subdomain_takeover, and 4 more. Their descriptions and schemas cost roughly 3,091 tokens of context every time the server is loaded.

Is the io.github.NELPROINC/nel-veil MCP server still maintained?

io.github.NELPROINC/nel-veil is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the io.github.NELPROINC/nel-veil MCP server under?

io.github.NELPROINC/nel-veil declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.