HTTP client with TLS fingerprinting — CLI, MCP server, and Go package. Supports JA3/JA4 fingerprinting, HTTP/2, HTTP/3, custom headers, proxies, and browser profiles.
Two tools with complete JSON schemas and reasonable descriptions. Tool naming is clear (request, batch) and action-oriented. Schemas are well-structured with proper types and enums. However, parameter descriptions lack depth, many fingerprinting params (ja3, ja4r, http2_fingerprint, quic_fingerprint) have minimal or no guidance on format/usage. Output schema is undocumented; LLMs cannot predict response structure. Error handling is basic (errorResult returns plain text). No guidance on when to use batch vs sequential requests, or how to interpret TLS fingerprint responses.
Make multiple HTTP requests in parallel with TLS fingerprinting. Returns an array of responses in the same order as the requests.
Make HTTP requests with TLS fingerprinting (JA3/JA4, HTTP/2). Supports all methods, custom headers, body, cookies, proxy, timeout, redirect control, and browser profiles.
Output schema undocumented. LLMs cannot predict response structure (status_code, headers, body, timing, etc.). Forces agents to guess field names for downstream processing.
TLS fingerprinting parameters (ja3, ja4r, http2_fingerprint, quic_fingerprint) lack format guidance. No examples, no constraints, no explanation of when/why to use each. LLMs cannot reliably construct valid fingerprints.
Parameter descriptions are sparse. 'header_order' says 'critical for fingerprint accuracy' but does not explain format (array of header names? order matters how?). 'profile' references 'chrome, firefox' but no enum constraint or discovery mechanism.
Error handling returns plain text (errorResult). No categorization (retryable vs fatal), no recovery guidance, no invalid-value echoing. LLMs cannot self-correct on validation failures.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
No tool composition guidance. When should an agent use batch vs sequential request calls? What are the performance/cost tradeoffs? Batch description does not explain parallelism guarantees or ordering.