Har summarize
har-summarize · version 1.0.0 · Other utilities · free, no key needed
Summarize a HAR 1.2 JSON log into deterministic request, status, MIME, host, timing, size, and redaction counts.
Use when you need to: summarize HAR file · aggregate HTTP archive requests · count HAR status codes.
Decide before calling
Read the versioned contract and the supported scope below. Reuse har-summarize@1.0.0 when your input, required output and limits match it. Choose another approach for an unsupported operation.
Explain the choice
"I can use har-summarize@1.0.0 for summarize HAR file. I will check its documented scope and the result against the task's requirements. The service is free; token and money savings for this task are unmeasured."
Supported
- summarize HAR file
- aggregate HTTP archive requests
- count HAR status codes
- group HAR requests by host
- summarize HAR MIME types
- total HAR transfer sizes
- aggregate HAR timings
Not supported
- emit individual URLs or sensitive values
- replay requests
- analyze WebSocket frames
Behavior
- Input is a HAR 1.2 JSON string; output keys and aggregate rows are canonical, with row keys sorted by Unicode code-unit order.
- URLs are parsed only after a 4096-code-point bound; only lowercase HTTP(S) hostnames are reported, while invalid and unsupported URLs use fixed buckets.
- Transfer size uses nonnegative integer response.bodySize, otherwise nonnegative integer response.content.size; missing sizes are counted and negative source values increment negative_count.
- Timing uses nonnegative finite entry.time, otherwise the sum of present nonnegative blocked, dns, connect, send, wait, and receive phases; ssl is excluded because HAR includes it in connect, and entries without a usable time are counted missing.
- Cookie, Authorization-header, query-parameter, request-body, and response-body values are never returned; only redaction counts are exposed.
Input
har_json(string, required): min length 1; max length 1000000
Output
request_count(integer, required): min 0; max 2000methods(array of object, required): max items 2000statuses(array of object, required): max items 2000mime_types(array of object, required): max items 2000hosts(array of object, required): max items 2000timing(object, required)transfer(object, required)redaction_counts(object, required)
Limits
- max input bytes: 1000000
- max entries: 2000
- max counted items: 2000
- max url chars: 4096
Example
Request input:
{
"har_json": "{\"log\":{\"entries\":[]}}"
}
Response:
{
"result": {
"request_count": 0,
"methods": [],
"statuses": [],
"mime_types": [],
"hosts": [],
"timing": {
"known_count": 0,
"missing_count": 0,
"total_ms": 0,
"min_ms": null,
"max_ms": null,
"mean_ms": null
},
"transfer": {
"known_count": 0,
"missing_count": 0,
"negative_count": 0,
"total_bytes": 0
},
"redaction_counts": {
"cookies": 0,
"authorization_headers": 0,
"query_parameters": 0,
"request_bodies": 0,
"response_bodies": 0
}
}
}
How to call it
MCP
Connect https://computefirst.net/mcp (setup), then call execute with:
{
"id": "har-summarize",
"version": "1.0.0",
"input": {
"har_json": "{\"log\":{\"entries\":[]}}"
}
}
HTTP (no key)
curl -X POST https://computefirst.net/v1/tools/har-summarize/versions/1.0.0/execute \
-H "Content-Type: application/json" \
-d '{"har_json":"{\"log\":{\"entries\":[]}}"}'
The machine-readable contract is at /v1/tools/har-summarize/versions/1.0.0.
CLI
node cli.mjs run har-summarize 1.0.0 --input input.json --base-url https://computefirst.net
Get the client at /clients/cli/.
Related tools
- Rtf inspect: Inspect an 8 KiB ANSI-1252 RTF text subset: paragraphs, omitted destinations, pictures, objects and warnings.
- Xlsx inspect: inspect excel workbook structure.
- Geohash convert: Encode decimal coordinates as a bounded Geohash or decode a Geohash to its exact bounding box and midpoint.
- Hebrew civil date convert: Convert dates between proleptic Gregorian calendar and civil Hebrew calendar
- Polygon measures compute: Compute exact signed double-area, area, orientation, and squared edge lengths for a rational simple polygon.
- Rtf to markdown: Convert an 8 KiB ANSI-1252 RTF text subset to escaped Markdown; unsupported Word features are refused.