Why write another script for an everyday JSON task?
You have a JSON file. You need a CSV, a TypeScript model, or a chart for a meeting. So you ask an AI agent. A moment later, it is writing a small program, checking the output, and fixing a detail you never wanted to think about.
That works. But what if the agent could use a tool that already knows how to do the boring part? We built narrow WebMCP actions into JSON All-in-One and tested that idea: the agent chooses the settings, the browser processes the file, and the agent gets the finished download. The source JSON does not need to become a giant chat message.
Across 24 validated task pairs, the browser route used about 55% fewer full tokens overall. The counts below show what happened on each task and model.
A small task can turn into a surprisingly large conversation
Writing a one-off script is often the right answer. A few lines of Python or JQ can be hard to beat, especially when you already know the data. The extra work starts around those lines: reading the structure, choosing a library, handling CSV quotes, preserving a nullable field, or getting a chart into a usable PDF.
Our question was deliberately narrow. Could an AI agent spend fewer tokens getting the same checked result by calling an existing browser tool instead of building its own solution? Not by sending the file to another AI. Just by giving the caller less work.
Four jobs we would actually ask an agent to do
We used the same synthetic input files and task requirements for each pair of runs. One agent could solve the task locally with code and its available tools. A fresh, isolated agent used the matching JSON All-in-One browser tool. Neither saw the other solution.
The files were intentionally ordinary: 180 orders, 64 export rows, a nested response containing three API results, and 12 chart points. The largest file was about 90 KB.
| Task | Input | Checked result |
|---|---|---|
| Query an order export | Orders with dates, line items, discounts, shipping, and refunds | Exact regional totals and top five products with the requested filtering and sorting |
| Export CSV | Unicode, quotes, line breaks, nulls, and spreadsheet-formula prefixes | Correct column order, escaping, and formula-safe cells |
| Generate TypeScript | A nested API response with arrays, nullable values, and optional fields | Types that compile and pass positive and negative type checks |
| Build a revenue chart | Dated positive, zero, and negative amounts | Offline HTML with working hover and a readable landscape PDF |
Give the agent a specialist, not another control panel
A CSV page should behave like a CSV tool. A TypeScript page should generate TypeScript. Making the agent navigate a general-purpose workbench and describe every click would miss the point.
The useful path is short: open the right page, attach the local file, choose the few settings that matter, and execute. The browser handles the processing and produces the download. The agent receives a compact result rather than a transcript of every internal step.
For TypeScript generation, the tool infers the schema from the file. There is no reason to ask the agent to reconstruct that schema first. For JQ queries, the division of work is different: the caller still writes the expression. JSON All-in-One runs it; the website does not call another model to guess the query.
So, did it save tokens?
The matrix compares successfully validated executions, measured in October 2026. Each cell reads local code → browser tool. These are full reported input-plus-output token counts, including cached input, from the same automated setup at Medium effort. They are not dollar costs or just the words visible in the final answer.
| Model | JQ query | CSV export | TypeScript | HTML + PDF chart |
|---|---|---|---|---|
| 5.6 Luna | 15,751 → 14,396 | 6,761 → 3,486 | 7,296 → 3,633 | 68,872 → 6,603 |
| 5.6 Terra | 8,456 → 7,363 | 6,218 → 3,467 | 8,808 → 3,461 | 33,894 → 6,560 |
| 5.6 Sol | 11,288 → 14,560 | 4,002 → 3,466 | 10,508 → 3,639 | 26,095 → 9,508 |
| 6 Luna | 8,672 → 9,741 | 4,365 → 4,062 | 7,411 → 4,022 | 28,163 → 7,238 |
| 6 Sol | 13,985 → 9,218 | 7,219 → 4,088 | 7,991 → 4,181 | 14,265 → 7,563 |
| 6 Astra | 18,506 → 7,869 | 4,587 → 4,065 | 7,619 → 4,052 | 10,541 → 7,259 |
Models can still get JQ syntax wrong; check the result before using it.
The useful saving was in work the agent no longer had to do
Across these 24 completed task pairs, the browser path used 153,500 full tokens versus 341,273 for local code: about 55% fewer. It used fewer full tokens in 22 of the 24 pairs. The clearest win was making finished artifacts—especially charts—without asking the model to build the export machinery.
JQ was a closer contest. The agent still has to work out the expression, and a local query can be the shorter route. That is fine. A useful tool does not have to win every job.
One small design change helped codegen: we removed the agent's unnecessary structure-inspection step and made the tool's built-in inference explicit. Across the six models, that reduced its full-token total by another 19% compared with our earlier browser interface. The agent needed to ask for types, not learn to be a schema generator first.
These are small-file results, not a large-file performance test or a promise about every prompt. Your client, its instructions, the model, and caching will affect the counts. The practical takeaway is simpler: let the agent choose the task; let a ready-made tool handle the routine processing.
Privacy-first does not mean the agent forgets what you tell it
The file is processed in your browser, not uploaded to a JSON All-in-One conversion server. Opening a file through the tool's file picker means reading it locally. Downloads are produced locally too.
Your AI client is a separate boundary. If it reads a schema, field names, a preview, or the finished result and sends that information to its model provider, those details have left the browser. Keeping a large source file out of the prompt is useful; it is not a promise that every agent workflow is entirely offline. Choose what you allow the agent to inspect.
Try it on the next file you were about to write a script for
Start with a job that has a clear finish line. Export these rows as CSV. Generate types for this response. Plot these dates and amounts, then save an HTML chart and a PDF. It is much easier to tell whether a tool helped when you can check the actual output.
The CSV exporter, TypeScript generator, JSON chart builder, and JQ playground are the tools behind these task families. You can use them yourself without an AI agent. For agent setup and the local-file workflow, see JSON tools for AI agents.
Use a WebMCP-capable browser and client for structured calls. WebMCP support is still evolving; a normal browser can use the same visible tools without it. And if a short local command already solves your task cleanly, there is no prize for making it more complicated.
Want to compare on the same inputs? Download the synthetic orders, CSV rows, API response, and revenue series. The measurement data includes token counts and file hashes. Chrome's WebMCP documentation explains browser support.