Nel Veil

io.github.NELPROINC由 GitHub 帳號 NELPROINC 發布v0.2.0更新於 Oct 24, 2026

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

概覽

AI 產生的概覽

免費的本機 MCP 伺服器,讓助理對網域做被動安全檢查:郵件偽造、TLS、安全標頭、暴露檔案、子網域接管與合規框架。

可以做什麼
檢查網域是否可被偽造郵件(DMARC/SPF/DKIM),以及 TLS 憑證與協商通訊協定版本是否安全,檢查是否送出常見 HTTP 安全標頭、是否公開提供 .env 等敏感路徑,並檢查常見子網域是否指向可被他人接管的雲端服務,一次執行全部檢查並提供各模組評分,依編號取回先前的掃描結果,列出或評估對 102 個合規框架的就緒度並附覆蓋說明
適用情境
適合需要快速、免費、免註冊了解某網域公開安全狀況時使用,例如判斷能否被郵件偽造、憑證是否即將到期,以及取得示意性的合規就緒度訊號,而非正式稽核。
執行需求
透過 npx 以 stdio 在本機執行,需要 Node.js 18 或更新版本。無需 API 金鑰、註冊或帳號。需要連線至 NEL 公開 API 的網路;選用環境變數 NEL_API_URL 可覆寫 API 基礎位址,僅供對自架後端進行本機開發使用。
安裝前請注意
雖稱被動,但部分檢查超出讀取公開紀錄:TLS 握手、請求 .env 與 .git/config 等敏感路徑、解析子網域並發出 HTTPS 請求、探測管理介面是否可達,這些都會出現在目標日誌中。建議僅對自有或獲授權的網域使用。請求會攜帶所查網域與 user-agent,服務方看得到請求來源 IP。合規結果僅為示意性就緒訊號,不是稽核、認證或法律意見。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Nel Veil,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

NEL VEIL MCP — free domain security checks for AI agents

Ask your agent "can someone spoof email from example.com?" and get a real answer in about ten seconds.

NEL VEIL MCP gives any MCP-compatible agent nine tools for checking a domain's public security posture: email spoofing (DMARC/SPF/DKIM), TLS weaknesses, HTTP security headers, publicly exposed files, subdomain-takeover risk, a combined scan, retrieval of an earlier scan, and compliance readiness against a register of 102 global frameworks.

Free. No API key. No signup.


Install

Claude Code — one command:

bash
claude mcp add nel-veil -- npx -y nel-veil-mcp

Any MCP client — add this to your config file:

json
{  "mcpServers": {    "nel-veil": {      "command": "npx",      "args": ["-y", "nel-veil-mcp"]    }  }}

Run it directly, to check it works:

bash
npx -y nel-veil-mcp

It prints a ready line to stderr — something like nel-veil-mcp 0.2.1 ready — 9 tools, free passive tier. — and then waits for JSON-RPC on stdin. That is correct: it is a stdio server, not a CLI, and stdout carries the protocol, so nothing else is ever written there.

Requires Node 18 or newer.


30 seconds: is your domain spoofable?

After installing, ask your agent:

Check if example.com can be email-spoofed.

It calls check_email_spoofing. Real output for example.com at the time of writing:

Check if a domain can be email-spoofed — example.comScore: 100/100 (done)
2 findings:  [LOW] DMARC has no reporting address (rua/ruf), you have no visibility into spoofing  [LOW] DKIM key may be 1024-bit (weak), 2048-bit recommended
Free check, built from public information. No port scanning and no exploit testing —though some checks (well-known path requests, admin-panel reachability) do more thanpassive reading; see nelprofessional.com/mcp. Active scanning requires verified domainownership and runs only at nelprofessional.com.More: https://www.nelprofessional.com/mcp

That domain is in good shape. The finding people are most often surprised by is a DMARC policy of p=none — it looks configured, monitors everything, and blocks nothing.


Tools

ToolAnswers
check_email_spoofingCan someone send email that appears to come from this domain? (DMARC/SPF/DKIM)
check_tlsIs this domain's certificate valid, trusted and not about to expire — and is the connection still negotiating a deprecated TLS version?
check_security_headersDoes this site send the headers that protect visitors in the browser?
check_exposed_filesIs this domain publicly serving files it should not be?
check_subdomain_takeoverAre there DNS records pointing at services someone else could claim?
scan_domainAll of the above at once, with a per-module score.
get_scan_reportRetrieve a scan already run at nelprofessional.com, by its scn_… id.
list_compliance_frameworksWhich laws and standards can this be checked against — and which can it not?
check_complianceWhat do these findings suggest about alignment with GDPR, NIS2, PIPEDA, CCPA, ISO 27001, SOC 2 and 96 more?

Each returns a 0–100 score plus specific findings you can act on.

Compliance

check_compliance maps one passive scan onto a register of 102 frameworks across Canada, the United States, the EU/EEA, the United Kingdom, Asia-Pacific, Africa and the global standards — citing the specific provision each finding bears on.

Read the coverage field before repeating 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. That is unknown, not clean.
  • A clean result over fewer than half a framework's categories is "Partial", not "Strong".
  • 26 of the 102 are "Not assessable" — 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. They are listed and explained, never scored.

These are indicative readiness signals from public-surface evidence. They are not an audit, not a certification and not legal advice, 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.


What this sends — stated plainly

Being precise here matters more than sounding safe, because this is the paragraph you rely on when deciding whether you may point a tool at someone else's domain.

No tool here does port scanning or exploit testing. Those are genuinely intrusive, they need the domain owner's permission, and they are deliberately not exposed over MCP at all.

But "passive" is not the same as "invisible", and several of these tools do more than read public records:

  • check_tls connects to the domain, but only as a browser would. It makes one ordinary TLS handshake to port 443, from NEL's own infrastructure, and reads what the server presents: certificate issuer and subject, the validity window and how many days remain, the subject alternative names, and the negotiated protocol and cipher. Nothing else is contacted, and no third party is asked to test the target. It reports an expired certificate, one expiring within 14 or 30 days, a self-signed certificate, an untrusted chain, a certificate that does not cover the hostname, and a connection negotiated over TLS 1.0 or 1.1. What one handshake cannot tell you: it shows what the server chose for that connection, not everything the server would accept. It does not enumerate supported cipher suites, does not test for Heartbleed, POODLE, DROWN or RC4 support, and produces no letter grade. Those need the deep assessment described below.
  • check_subdomain_takeover is not DNS-only. It resolves a small fixed list of common subdomain names and makes one HTTPS request to any that point at a known cloud host. It never claims or modifies anything.
  • check_exposed_files requests a small fixed list of well-known paths (.env, .git/config and similar). It never brute-forces or fuzzes — the list does not grow or adapt — but these are paths a crawler would not request, so they are recognisable in a target's logs as a security check.
  • scan_domain runs all of the above, and additionally checks whether common admin panels (/phpmyadmin/, /manager/html) are publicly reachable.

Everything above is information the domain publishes. None of it attacks anything. But it is more than ordinary crawling, so prefer running it against a domain you own or are authorised to assess.

Active scanning — port exposure, API probing, proof-of-concept checks, and the deep TLS assessment (tls_labs) that produces the Qualys SSL Labs grade along with the Heartbleed, POODLE, DROWN and RC4 tests — lives at nelprofessional.com, behind DNS-TXT proof that you control the domain. None of it is reachable from this MCP server. That is the right place for it, because a human proves ownership once and NEL can stand behind the result.

Rate limits. Ten single checks and three full scans per minute, per IP address. If you hit it, wait a minute.

Privacy. This package sends no API key, no email address, and no account identifier. Each request carries the domain you asked about and a nel-veil-mcp user-agent. Note that, like any HTTP service, NEL sees the IP the request came from — it is what the rate limit is keyed on.


Configuration

VariableDefaultPurpose
NEL_API_URLhttps://api.nelprofessional.comPoint at a self-hosted NEL backend. Only needed for local development.

Development

These steps need the git repository, not the published npm package — the tarball ships only dist/, so src/ and scripts/ are not in it.

bash
git clone https://github.com/NELPROINC/nel-veil-mcp.gitcd nel-veil-mcpnpm installnpm run buildnode scripts/mcp-smoke.mjs example.com

scripts/mcp-smoke.mjs launches the built server exactly as npx would, performs the MCP handshake, lists the tools and calls one for real — so it catches transport and schema problems a unit test would not.


About NEL VEIL

NEL VEIL is the security scanner behind NEL Professional, a marketplace connecting organisations with verified cybersecurity professionals. The same modules that power this MCP server power the scans on the site.

Full documentation: nelprofessional.com/mcp


License

MIT — see LICENSE.

來源:README.md,提交 24a0a01

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.2.0最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分