A domain security and privacy checker exposed as an MCP server. It runs entirely on your machine, makes no telemetry calls, and resolves DNS through Cloudflare DoH instead of Google.
Ask any MCP client to scan a domain and get back a scored report covering the certificate, email authentication, DNS and infrastructure, and web security headers, with a plain remediation for anything that fails.
- Local-first. The server runs over stdio and does its own DNS-over-HTTPS, HTTP, RDAP and TLS lookups. The only network traffic is the checks themselves.
- Zero telemetry. No analytics, no phone-home, no third-party scoring service in the loop.
- Privacy by default. DNS goes to Cloudflare DoH rather than Google, and the reputation check uses Cloudflare's malware/phishing resolver.
- Free software. Licensed GPL-3.0-or-later. Read it, run it, change it, self-host it.
The server exposes three tools.
Scan a domain or URL and return a scored report from real live checks.
List every check grouped by category, with the reason each one matters.
{ "lang": "en" }Explain a single check by id, why it matters, and how to remediate a failure.
{ "check_id": "dmarc", "lang": "en" }Seventeen checks across four categories, weighted to a 0-100 score.
| Category | Check id | What it verifies |
|---|---|---|
| ssl | ssl |
SSL/TLS certificate validity and expiry |
spf |
SPF record present and not overly permissive | |
dmarc |
DMARC policy and reporting | |
dkim |
DKIM signing (common selectors probed) | |
mta_sts |
MTA-STS against SMTP downgrade attacks | |
mx |
MX records for mail delivery | |
bimi |
BIMI brand logo record and VMC | |
| dns | dnssec |
DNSSEC signing on the zone |
| dns | ptr |
PTR / forward-confirmed reverse DNS |
| dns | caa |
CAA records restricting certificate issuance |
| dns | blacklist |
Malware/phishing reputation |
| dns | expiry |
Domain registration expiry |
| dns | whois_redact |
WHOIS/RDAP personal-data redaction |
| web | headers |
HTTP security headers (HSTS, CSP, X-Frame-Options, …) |
| web | csp |
Content-Security-Policy quality |
| web | web_tech |
CMS/server version and API exposure |
| web | hsts_preload |
HSTS preload-list status |
Run list_checks for the full descriptions, or explain_check for one at a time.
Run it straight from npm with npx:
npx @oksigenia/checker-mcpRegister it with Claude Code:
claude mcp add oksigenia-checker -- npx -y @oksigenia/checker-mcpOr add it to any MCP client config (works in Claude Desktop, Claude Code, or any MCP client):
{
"mcpServers": {
"oksigenia-checker": {
"command": "npx",
"args": ["-y", "@oksigenia/checker-mcp"],
"env": { "OKSIGENIA_LANG": "en" }
}
}
}Then ask: "Check the security of example.com" or "Explain the dmarc check."
Build and run it as a container. It speaks MCP over stdio, so run it attached to your client's stdin/stdout (-i), not on a port.
docker build -t oksigenia-checker-mcp .
docker run --rm -i oksigenia-checker-mcpReports render in Spanish and English. Set the default with OKSIGENIA_LANG (es or en), or pass lang on any tool call. It defaults to English.
The only thing that leaves your machine is the domain name you scan, sent to:
- Cloudflare DoH (
cloudflare-dns.com) and Cloudflare's security resolver, for DNS and reputation - public RDAP (
rdap.org), for registration and WHOIS-privacy data - the HSTS preload API, for preload status
- the target site itself, over HTTPS, to read its certificate and security headers
There is no telemetry, no analytics, and no third-party scoring service. Nothing about your queries is stored or transmitted anywhere else.
npm install
npm run build # tsup -> dist/
npm run typecheck # tsc --noEmit
npm test # vitest (hermetic, mocked network)
npm run smoke # spawn the built server and exercise every tool liveDev watch: npm run dev.
src/engine.ts— the network engine. Language-agnostic: returns i18n keys, not text. Every check is individually resilient andrunChecksnever throws.src/i18n.ts— es/en dictionaries andt().src/index.ts— the MCP server: renders engine keys into the requested language and exposes the three tools.
See CONTRIBUTING.md for the PR flow.
GPL-3.0-or-later © Oksigenia SL