blackveil-dns 2.6.4 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +36 -10
- package/dist/index.d.ts +10 -1
- package/dist/index.js +608 -207
- package/dist/index.js.map +1 -1
- package/dist/stdio.js +2005 -696
- package/dist/stdio.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ Open-source DNS & email security scanner for Claude, Cursor, VS Code, and MCP cl
|
|
|
26
26
|
|
|
27
27
|
**Claude Desktop** (one-click install):
|
|
28
28
|
|
|
29
|
-
Download the [Blackveil DNS extension](https://github.com/MadaBurns/bv-claude-dns/releases/latest/download/bv-claude-dns.mcpb) and open it — all
|
|
29
|
+
Download the [Blackveil DNS extension](https://github.com/MadaBurns/bv-claude-dns/releases/latest/download/bv-claude-dns.mcpb) and open it — all 51 tools available instantly. [Verify your download](https://blackveilsecurity.com/extensions/claude-dns#install).
|
|
30
30
|
|
|
31
31
|
**Claude Code** (one command):
|
|
32
32
|
|
|
@@ -82,7 +82,7 @@ Transport support:
|
|
|
82
82
|
## Tools
|
|
83
83
|
|
|
84
84
|
```
|
|
85
|
-
|
|
85
|
+
51 MCP tools · 7 prompts · 6 resources
|
|
86
86
|
|
|
87
87
|
Email Auth Infrastructure Brand & Threats Meta
|
|
88
88
|
──────────── ──────────────── ───────────────── ──────────────────────
|
|
@@ -111,10 +111,12 @@ Transport support:
|
|
|
111
111
|
|
|
112
112
|
## Quality & Reliability
|
|
113
113
|
|
|
114
|
-
The server is continuously validated using a **comprehensive chaos test suite**
|
|
114
|
+
The server is continuously validated using a **comprehensive chaos test suite** that covers all detected MCP client types:
|
|
115
115
|
|
|
116
|
-
- **Interactive clients**: `claude_code`, `cursor`, `vscode`, `claude_desktop`, `windsurf` (auto-format: `compact`)
|
|
117
|
-
- **Non-interactive clients**: `mcp_remote`, `blackveil_dns_action`, `bv_claude_dns_proxy`, `unknown` (auto-format: `full`)
|
|
116
|
+
- **Interactive clients**: `claude_mobile`, `claude_code`, `cursor`, `vscode`, `claude_desktop`, `windsurf` (auto-format: `compact`)
|
|
117
|
+
- **Non-interactive clients**: `mcp_remote`, `blackveil_dns_action`, `bv_claude_dns_proxy`, `bv_load_test`, `unknown` (auto-format: `full`)
|
|
118
|
+
|
|
119
|
+
The `bv_load_test` class identifies internal load/chaos/tranco-scan traffic so it stays out of real-client analytics segments.
|
|
118
120
|
|
|
119
121
|
The test suite ensures session stability, authentication precedence, and transport-specific edge cases across Streamable HTTP and Legacy SSE.
|
|
120
122
|
|
|
@@ -154,7 +156,7 @@ Run the chaos tests locally: `python3 scripts/chaos/chaos-test-clients.py`
|
|
|
154
156
|
└──────────────────────────┘
|
|
155
157
|
```
|
|
156
158
|
|
|
157
|
-
- **Generic Scoring Engine**:
|
|
159
|
+
- **Generic Scoring Engine**: Runtime-agnostic, string-keyed three-tier scoring with configurable weights
|
|
158
160
|
- **WASM Policy Engine**: High-performance permission and token checks via `bv-wasm-core`
|
|
159
161
|
- **Reliable Sessions**: Hardened tombstone logic prevents race-condition revival of terminated sessions
|
|
160
162
|
- **Adaptive Scoring**: Durable Object telemetry adjusts weights based on real-world distributions
|
|
@@ -164,11 +166,13 @@ Run the chaos tests locally: `python3 scripts/chaos/chaos-test-clients.py`
|
|
|
164
166
|
|
|
165
167
|
## Client setup
|
|
166
168
|
|
|
167
|
-
The free tier requires no authentication.
|
|
169
|
+
The free tier requires no authentication. Authenticated requests bypass per-IP rate limits and follow your tier's daily quota. Three authentication methods are supported:
|
|
170
|
+
|
|
168
171
|
- **Header**: `Authorization: Bearer <KEY>`
|
|
169
|
-
- **Query Param**: `?api_key=<KEY>`
|
|
172
|
+
- **Query Param**: `?api_key=<KEY>` (for clients that can't send custom headers — Smithery, Claude Code)
|
|
173
|
+
- **OAuth 2.1**: authorization-code flow with PKCE, discovered via `/.well-known/oauth-authorization-server` — used by the Claude mobile custom connector.
|
|
170
174
|
|
|
171
|
-
For full hosted setup examples, stdio usage, and legacy fallback endpoints, see [**docs/client-setup.md**](docs/client-setup.md).
|
|
175
|
+
For full hosted setup examples, stdio usage, OAuth setup, and legacy fallback endpoints, see [**docs/client-setup.md**](docs/client-setup.md).
|
|
172
176
|
|
|
173
177
|
---
|
|
174
178
|
|
|
@@ -185,6 +189,28 @@ For full hosted setup examples, stdio usage, and legacy fallback endpoints, see
|
|
|
185
189
|
|
|
186
190
|
---
|
|
187
191
|
|
|
192
|
+
## Example prompts
|
|
193
|
+
|
|
194
|
+
These demonstrate core functionality — paste any of them into Claude with the Blackveil DNS connector enabled:
|
|
195
|
+
|
|
196
|
+
| Prompt | What it does |
|
|
197
|
+
|--------|-------------|
|
|
198
|
+
| `Scan blackveilsecurity.com and tell me what needs fixing` | Full security audit — score, grade, prioritized findings |
|
|
199
|
+
| `Compare the email security of google.com and microsoft.com` | Side-by-side comparison of two domains' postures |
|
|
200
|
+
| `Generate a DMARC record for example.com with reject policy` | Produces a ready-to-publish DNS record |
|
|
201
|
+
| `What attack paths exist for example.com?` | Enumerates spoofing, takeover, and hijack vectors |
|
|
202
|
+
| `Map example.com's compliance against NIST 800-177` | Maps findings to compliance framework controls |
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## Support
|
|
207
|
+
|
|
208
|
+
- **Bug reports & feature requests:** [GitHub Issues](https://github.com/MadaBurns/bv-mcp/issues)
|
|
209
|
+
- **Security vulnerabilities:** [security@blackveilsecurity.com](mailto:security@blackveilsecurity.com) (see [SECURITY.md](SECURITY.md))
|
|
210
|
+
- **General questions:** [GitHub Discussions](https://github.com/MadaBurns/bv-mcp/discussions)
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
188
214
|
## Responsible use
|
|
189
215
|
|
|
190
216
|
This tool is intended for **authorized security assessments** of domains you own or have explicit permission to test. Do not use it for unauthorized reconnaissance, harassment, or any activity that violates applicable laws. Findings from attack simulation, spoofability, and subdomain discovery tools should be used to **improve your own security posture**, not to exploit others.
|
|
@@ -197,6 +223,6 @@ If you discover a vulnerability in a third-party domain, please follow [coordina
|
|
|
197
223
|
|
|
198
224
|
Built and maintained by [**BLACKVEIL**](https://blackveilsecurity.com) — NZ-owned cybersecurity consultancy.
|
|
199
225
|
|
|
200
|
-
BUSL-1.1
|
|
226
|
+
[Privacy Policy](https://www.blackveilsecurity.com/privacy) · [License](LICENSE) (BUSL-1.1 → MIT on 2030-03-17)
|
|
201
227
|
|
|
202
228
|
</div>
|
package/dist/index.d.ts
CHANGED
|
@@ -46,6 +46,7 @@ declare const RecordType: {
|
|
|
46
46
|
readonly DNSKEY: 48;
|
|
47
47
|
readonly DS: 43;
|
|
48
48
|
readonly RRSIG: 46;
|
|
49
|
+
readonly NSEC3PARAM: 51;
|
|
49
50
|
readonly PTR: 12;
|
|
50
51
|
readonly SRV: 33;
|
|
51
52
|
readonly HTTPS: 65;
|
|
@@ -191,7 +192,7 @@ declare function sanitizeDomain(input: string): string;
|
|
|
191
192
|
declare function sanitizeInput(input: string, maxLength?: number): string;
|
|
192
193
|
|
|
193
194
|
/** Server version — keep in sync with package.json */
|
|
194
|
-
declare const SERVER_VERSION = "2.
|
|
195
|
+
declare const SERVER_VERSION = "2.10.0";
|
|
195
196
|
|
|
196
197
|
/**
|
|
197
198
|
* Map of every tool name to its Zod argument schema.
|
|
@@ -257,6 +258,10 @@ declare function checkDmarc(domain: string, dnsOptions?: QueryDnsOptions): Promi
|
|
|
257
258
|
* Verifies the AD (Authenticated Data) flag, checks for DNSKEY/DS records,
|
|
258
259
|
* and audits algorithm and digest type security.
|
|
259
260
|
* Augments results with dnssecSource metadata: 'domain_configured' or 'tld_inherited'.
|
|
261
|
+
*
|
|
262
|
+
* When the primary resolver reports AD=false but DNSKEY+DS records exist ("validation failing"),
|
|
263
|
+
* fires a confirmation probe to Google DoH. If Google says AD=true (edge flap), re-runs the
|
|
264
|
+
* check with the corrected flag to avoid score instability.
|
|
260
265
|
*/
|
|
261
266
|
declare function checkDnssec(domain: string, dnsOptions?: QueryDnsOptions): Promise<CheckResult>;
|
|
262
267
|
|
|
@@ -291,6 +296,10 @@ declare function checkNs(domain: string, dnsOptions?: QueryDnsOptions): Promise<
|
|
|
291
296
|
* Check SPF records for a domain.
|
|
292
297
|
* Looks for v=spf1 TXT records and validates their configuration.
|
|
293
298
|
* Recursively expands include chains to compute true DNS lookup count.
|
|
299
|
+
*
|
|
300
|
+
* Top-level DNS failures (timeout, DoH HTTP error, invalid response) are
|
|
301
|
+
* converted to a high-severity finding so callers receive a structured
|
|
302
|
+
* CheckResult instead of a thrown error.
|
|
294
303
|
*/
|
|
295
304
|
declare function checkSpf(domain: string, dnsOptions?: QueryDnsOptions): Promise<CheckResult>;
|
|
296
305
|
|