Skip to main content
Glama
andresolbach

nodriver-mcp-server

Export network log as HAR

export_har

Export the live network log to a HAR file for Burp, ZAP, or DevTools. Includes headers, cookies, POST bodies, timings, server IPs, and WebSocket frames; response bodies when available.

Instructions

Write the network log to a HAR 1.2 file — importable into Burp, ZAP, Chrome DevTools, Charles and anything else that reads HAR.

Headers are the ones that went over the wire, Cookie and Set-Cookie included, with POST bodies, status, timing, server IP and WebSocket frames. Response bodies come from capture_bodies' files where available — start a capture first for a HAR that has every body — and otherwise from Chrome's buffer, which only still holds recent ones on the current tab.

The file holds live session cookies and tokens; treat it like a password.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
browserNoWhich browser to act on. Each name is an independent Chrome, created on first use. Omit for the shared default; parallel agents each need their own name.default
file_pathYesWhere to write the .har file.
url_filterNoOnly requests whose URL contains this substring, e.g. "/api/". Empty exports all.
include_bodiesNoEmbed response bodies: from capture_bodies' files where there is one, otherwise whatever Chrome still holds. Off gives headers and timing only.
include_preserved_requestsNoAlso export the previous 3 navigations' requests, not just the current page's.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.5.0

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations carry almost no signal (all flags false), so the description bears full behavioral disclosure — and it delivers: it reveals the write-tenor (readOnlyHint=false is consistent), the full payload contents including live session cookies/tokens, the body-source fallback chain (capture_bodies files first, then Chrome buffer), and adds a security warning to treat the file like a password. This significantly exceeds what the sparse annotations provide.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is longer than average (three paragraphs) but every block earns its place: purpose/format compatibility, then content and body-sourcing behavior, then the security caveat. It is front-loaded with the core purpose and leads into increasingly operational detail, with no filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 5-parameter tool with an output schema, the description covers all the behavioral essentials an agent needs: what the file contains, where response bodies come from and when they are incomplete, how to get complete bodies via capture_bodies, and the session-token sensitivity. With an output schema present, return-value documentation is not required, and the capture_bodies interplay is explicitly handled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with already-detailed parameter descriptions (browser explains parallel-agent semantics, include_bodies explains the fallback). The description reinforces the capture_bodies relationship that maps to include_bodies, adding some cognate context, but it does not systematically extend each parameter's meaning beyond the schema. The schema does the heavy lifting, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource — "Write the network log to a HAR 1.2 file" — and immediately distinguishes this from read-oriented siblings like list_network_requests and get_network_request by specifying file export. The format detail and the tool-importability list (Burp, ZAP, Chrome DevTools) make the function unambiguous even before reading the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear when-to-use context: "start a capture first for a HAR that has every body," explicitly routing the agent to capture_bodies for the complete case and warning that Chrome's buffer otherwise only holds recent requests on the current tab. This effectively names the prerequisite/collaborating tool. It stops short of explicit when-not-to-use statements or direct naming of alternative tools, which keeps it from a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.