Skip to main content
Glama

abox.tools for agents

Published by Abox Technologies. Compress, resize and convert images; create ICO icons, rasterize SVGs and compose image layouts; compress, watermark, merge, split, reorder and rotate PDF pages; extract PDF tables to CSV; turn images into PDFs; format JSON and XML; convert YAML and JSON; compare text files; encode or decode Base64; embed images as data URIs; generate QR codes and barcodes; inspect or remove image metadata; and calculate file checksums with the existing abox.tools code. An agent supplies local paths and receives output paths and short JSON results. Offline file processing keeps bytes on your computer and out of tool responses.

It also processes GIFs, admitted audio and supported video timelines; straightens document photos; prepares custom ID photos and local previews; extracts receipt fields with bundled OCR; inspects and renders a restricted DICOM subset; protects and unlocks PDFs; redacts explicit image/PDF regions; and generates passwords into local files. Codec and rendering operations expose documented subsets.

The public v0.11.0 release provides 66 offline file operations, six opt-in live controls and one capabilities tool: 72 operations and 73 MCP tools. Native and universal packages passed checks on all four target platforms. See tool coverage and concrete unsupported paths for the source engines reused by this adapter and the limits of each route.

Version 0.11.0 adds six live-session controls: a separate opt-in visible companion for text/files, camera video and voice. Opening a window starts no network or capture. The person clicks Start/Connect and handles permissions and pairing there. Live mode uses the existing abox.tools pairing service and direct encrypted WebRTC; the service sees negotiation metadata and keeps seven-day Cloudflare metadata logs. There is no relay, discovery or recording. Read the live-session boundary. The actual SHA-verified public Windows cache passed all 72 operations/73 tools and all eight passive companion roles, with no capability absences or unrequested pairing/capture. Public Gemini installation and the 15-file shared-skill copy also passed. Real pairing-service and public-website interoperability checks used temporary files and generated media in two isolated browsers on one computer. Physical devices, native camera permission and desktop-client installation remain unverified. See v0.11.0 publication evidence.

Historically, version 0.10.0 added HEIC/AVIF, flattened PDF redaction, sound extraction and admitted H.264 video processing. It also expands audio and DICOM codec support. Publication and the Registry readback were verified on 28 October 2026. The default Python installer downloaded and checksum-verified the public Windows package. That actual cache passed all 66 file operations and 67 MCP tools with its bundled runtime, without capability absences or a local rebuild. Public Gemini CLI installation and the shared skill's 14-file project installation also passed. The skill check validated the installer contract offline; actual adapter installation was proved separately by the public Python download and full MCP smoke. See the v0.10.0 publication evidence.

Historically, the public v0.9.0 Windows download passed all 55 file operations and 56 MCP tools using its bundled runtime. Public Gemini CLI installation and the shared skill's ten-file installation were also checked. See publication evidence, including the historical v0.8.0 receipts.

Download the latest release. Listed in the Official MCP Registry as io.github.A-Box-of-Tools/abox-tools. New tagged releases update the Registry automatically after their downloads pass verification.

Release bundles include Node.js, production dependencies, pinned processing code, and the shared skill. You do not need to install Node or npm, or type setup commands. Image rendering/conversion, GIF creation/extraction, decoded audio, receipt OCR, document scans, local previews, PDF raster redaction and video decoding/encoding need an installed Edge, Chrome or Chromium. PDF page/security operations, metadata operations, checksums, container inspection, audio/video packet copying and text processing run without one. QR codes and barcodes default to SVG without a browser; PNG output uses the installed local browser. A native H.264 encoder is required for new MP4 encoding.

Install in Codex

Download the matching .zip from the release's Assets:

Release label

Computer

windows-x64

Windows with an Intel or AMD 64-bit processor

macos-arm64

Mac with Apple silicon

macos-x64

Mac with an Intel processor

linux-x64

Linux with an Intel or AMD 64-bit processor

  1. Extract the entire ZIP to a permanent folder. For example, a 0.11.0 Windows bundle extracts as abox-tools-0.11.0-windows-x64. Keep this folder in place because the local marketplace uses it for plugin refresh.

  2. Open START-HERE.html inside the extracted folder. This page works offline. Select Install in Codex, allow your browser to open the desktop app, then select Install on the plugin's detail page.

  3. Start a new local chat and ask for one of the operations below.

You need the desktop app installed with its codex:// link handler available. The button opens the app's supported local-plugin detail link; the app handles installation. See the official OpenAI deep-link documentation. If your browser blocks the link, use Install in Codex.cmd on Windows or Install in Codex.command on macOS. Linux includes Install in Codex.sh for file managers that support executing shell scripts. These launchers open the same detail page and may briefly show a terminal; no commands need to be typed.

Related MCP server: pdf-agent-toolkit-mcp

Install the tools in Claude Desktop

Download the universal.mcpb from the same release, open it with Claude Desktop, and follow its installation prompts. One file supports Windows x64, Linux x64, and both Apple silicon and Intel Macs. It includes the runtimes and processing dependencies. Smaller platform-specific MCPBs are also available. This installs the MCP tools; the shared agent skill is part of the Codex ZIP.

If opening the file does not show an installer, go to Settings → Desktop app → Manage beside Extensions, then Advanced settings → Install Extension… and select the .mcpb. See Claude's desktop extension instructions. Bundle format and MCP execution are checked in CI on all four platforms. The 0.2.1 universal bundle was installed and enabled in Claude Desktop on Windows, where the app reported its local MCP server Running. The macOS desktop interface has not been checked. Download and install a new bundle when updating; custom MCPB files do not update automatically.

Version 0.3.0 corrects the publisher to Abox Technologies. If your desktop host shows both the earlier publisher entry and the new one, disable the older entry to avoid duplicate tools.

Install in Gemini CLI

With Gemini CLI installed, run:

gemini extensions install https://github.com/A-Box-of-Tools/abox-tools-plugin

Gemini selects the matching prebuilt archive from the latest GitHub Release. The extension includes its runtime, dependencies and shared skill. Review the installation prompt and allow its local MCP server. See the Gemini extension release guide.

Install tools in Cursor

Extract the matching native ZIP, open START-HERE.html, and select Install tools in Cursor. Cursor shows the local server configuration before adding it. Keep the extracted folder in place. This adds the MCP tools; the shared skill can be installed separately. The repository's Cursor plugin route needs Node and a one-time adapter setup; see Cursor installation.

Install tools in VS Code

Extract the matching native ZIP, open START-HERE.html, and select Install tools in VS Code. Review the local server configuration in VS Code and keep the extracted folder in place. The button uses the bundled runtime; Node, npm and a VSIX are not required. This installs MCP tools. Install the shared skill separately if your agent supports it. See the official MCP installation-link documentation.

Install the shared skill through skills.sh

For agents supported by the skills CLI (Node 22.20+):

npx skills add A-Box-of-Tools/abox-tools-plugin --skill abox-local-files

Then ask the agent to set up the abox.tools local adapter. The skill includes a Python 3.9+ setup script that downloads the matching packaged release, verifies its checksum and installs the bundled runtime. It does not require cloning or building this project. See standalone setup. The skills.sh listing is public. Public v0.11.0 Gemini installation and skill copying were verified; a Gemini gallery listing is unconfirmed.

Ask the agent

  • “Compress this photo below 500 KB and save a new copy.”

  • “Resize this photo to fit within 1200 by 800 pixels.”

  • “Convert this PNG to WebP.”

  • “Merge these PDFs in this order.”

  • “Split this PDF into one file per page.”

  • “Extract pages 1–3 and 4–6 as two PDFs.”

  • “Make one PDF containing pages 3, 1–2, and another copy of page 3.”

  • “Rotate pages 2–4 clockwise by 90 degrees.”

  • “Put these photos into one PDF, in this order.”

  • “Check whether this image contains EXIF or XMP metadata.”

  • “Remove location and other image metadata, keeping its orientation and colors.”

  • “Calculate SHA-256 checksums for these files.”

  • “Compress this scanned PDF for screen reading.”

  • “Add a diagonal DRAFT watermark to every PDF page.”

  • “Make an ICO with 16, 32, 48 and 256 pixel versions of this logo.”

  • “Export this SVG as a transparent PNG, 1200 pixels wide.”

  • “Arrange these photos into a two-column grid with transparent gaps.”

  • “Extract the tables on pages 2–4 into a CSV I can review.”

  • “Format this JSON without changing large numbers or key order.”

  • “Decode this Base64 file into a new binary file.”

  • “Convert this YAML configuration into JSON.”

  • “Format this XML while preserving mixed text.”

  • “Compare these two files and save a unified patch.”

  • “Generate a QR code from the exact text in this local payload file.”

  • “Make a Code 128 barcode from this local payload file.”

  • “Embed this image as a CSS custom property without changing its bytes.”

  • “Inspect the frame timings of this GIF without decoding its pictures.”

  • “Extract GIF frames 1, 5 and 10 as composited PNGs.”

  • “Trace this black-and-white logo into a single-color SVG.”

  • “Average these aligned, opaque images into a new PNG.”

  • “Black out the exact regions in my local JSON file and save a new PNG.”

  • “Generate two six-word passphrases into a new local file without showing them.”

All input and output paths must be absolute. Existing outputs are never overwritten. Image compression accepts an exact byte target; a result reports whether the target was met.

MCP tool

Required arguments

Useful options

abox_capabilities

none

Lists formats, limits, and defaults.

abox_image_compress

input_path, output_path, target_bytes

format: keep, auto, jpeg, png, webp; allow_resize

abox_image_resize

input_path, output_path, width and/or height

fit: contain or cover; allow_upscale: false; format, quality, background

abox_image_convert

input_path, output_path, format

jpeg, png, or webp; quality from 0 to 1; JPEG background

abox_pdf_split

input_path, output_dir

mode: each, every, ranges; pages_per_file; ranges; keep_bookmarks

abox_pdf_merge

input_paths, output_path

2–32 PDFs in input order; keep_bookmarks

abox_pdf_select

input_path, output_path, pages

Ordered terms such as 3,1-2,3; keep_bookmarks

abox_pdf_rotate

input_path, output_path, degrees

Clockwise 90, 180, or 270; pages defaults to all; retains every page

abox_images_to_pdf

input_paths, output_path

One image per page; page_size, orientation, fit, margin_mm, dpi, image_mode, quality, max_side, background

abox_exif_inspect

input_path

Read-only metadata inventory; does not return private tag values

abox_exif_remove

input_path, output_path

keep_orientation; keep_icc

abox_file_hash

input_path

algorithms: MD5, SHA-1, SHA-256 (default), SHA-384, SHA-512

abox_pdf_compress

input_path, output_path

preset: smallest, screen, print, gentle; optional dpi, quality, strip_metadata

abox_pdf_watermark

input_path, output_path, text

size, color, opacity, diagonal, tiled, first_page_only

abox_image_to_ico

input_path, output_path

sizes, fit: pad, crop, stretch; storage: auto, png, bmp; optional background

abox_svg_to_image

input_path, output_path

format: png, jpeg, webp; width, height, fit, quality, background

abox_image_layout

ordered input_paths, output_path

layout: grid, horizontal, vertical; width, grid columns, ratio, gap, padding, fit, format, quality, background

abox_pdf_to_csv

input_path, output_path

pages, table_index, date_order: auto, dmy, mdy; include_headers, spreadsheet_safe

abox_json_format

input_path, output_path

minify, indent: 2, 4, tab; sort_keys (opt-in natural sorting)

abox_base64

input_path, output_path, mode

encode or decode; url_safe; decoding canonical

abox_image_data_uri

input_path, output_path

shape: uri, css-rule, css-var, html, markdown; svg_encoding: auto or base64; optional CSS identifier

abox_yaml_json

input_path, output_path, direction

yaml-to-json or json-to-yaml; indent: 2 or 4; YAML-to-JSON sort_keys

abox_xml_format

input_path, output_path

minify; indent: 2, 4, tab

abox_qr_generate

UTF-8 payload input_path, output_path

format: svg (default) or png; level: L, M, Q, H; quiet, scale, foreground, background

abox_barcode_generate

UTF-8 payload input_path, output_path

symbology: code128, ean13, upca, ean8, itf14, itf, code39; format, scale, height, text, code39_check, colors

abox_text_diff

left_path, right_path, output_path

context_lines (0–100, default 3); ignore_whitespace, ignore_case, ignore_blank_lines affect comparison summaries only

abox_gif_inspect

input_path

Header-only timing, rectangles and budgets; optional zero-based frame_offset and frame_limit (default 20)

abox_gif_split

input_path, new output_dir

mode: composited (default) or stored; optional unique 1-based frames; PNGs and local timing manifest

abox_image_trace

input_path, .svg output_path

Single-color shape trace; threshold, invert, detail, corner_angle, min_area, fill

abox_image_stack

ordered input_paths, output_path

average, median, sigma, lighten, darken, add; equal-size opaque frames; PNG/JPEG

abox_image_redact

input_path, .png output_path, regions_path

Local JSON with expected decoded dimensions and integer rectangles; permanent opaque black fill

abox_password_generate

.txt output_path

Optional local JSON config_path; passwords or EFF passphrases; secrets excluded from responses

The six new tools' settings and JSON configuration examples are documented in the shared skill reference.

Operations added in v0.9.0

These routes extend the earlier v0.8.0 operation set. Their full settings, local JSON shapes and review requirements are in the shared skill's media and document reference. Use capabilities to check what your installed release exposes.

MCP operation

CLI command

Result and important boundary

abox_code_read

read-code-image

One QR/barcode payload in a new local JSON report; never opens links or returns the payload

abox_gif_create

create-gif

Ordered still images to GIF with timing, palette and loop controls

abox_pdf_protect

protect-pdf

AES-256/AES-128 PDF security; exact passwords come from local files; viewer permission flags are advisory

abox_pdf_unlock

unlock-pdf

Supplied-password decryption to a new PDF; no password guessing

abox_audio_edit

edit-audio

Reverse, speed/pitch, gain or normalize an admitted PCM16/Float32 WAV

abox_audio_trim

trim-audio

Ordered kept ranges or cuts in WAV; configurable fades; encoded samples verified

abox_video_inspect

inspect-video

MP4/MOV sample tables and technical headers without decoding

abox_video_trim

trim-video

Copy admitted time ranges; hidden boundary packets can remain, so this is not redaction

abox_video_join

join-videos

Copy compatible MP4/MOV clips into a new MP4 without re-encoding

abox_video_rotate

rotate-video

Copy video packets with a clockwise display matrix; viewers must honor orientation

abox_video_remux

remux-video

Copy supported H.264/AAC MP4/MOV packets into MP4; no transcoding fallback

abox_document_scan

scan-document

Explicit local corner coordinates to cleaned PNG/PDF; no edge detection or OCR

abox_id_photo

make-id-photo

Custom rules and explicit landmarks to JPEG photo, print sheet and report; no official approval

abox_business_profile

preview-business-profile

Illustrative local SVG/PNG; does not access or publish a real listing

abox_height_compare

compare-heights

Locally configured silhouettes, names and measurements to SVG/PNG

abox_receipt_extract

extract-receipt

Bundled English OCR to local JSON/CSV; every suggested field needs review

abox_dicom_inspect

inspect-dicom

Technical headers without patient values for flat PS3.10 native/single-frame RLE files

abox_dicom_render

render-dicom

One technical PNG preview; burned-in identifiers remain possible

abox_images_to_video

images-to-video

Still images to silent H.264 MP4 with verified frames/timing

abox_gif_to_mp4

gif-to-mp4

One GIF cycle to silent H.264 MP4, with a solid background for transparency

abox_exif_edit

edit-exif

Explicit tag changes from local JSON; compressed picture and other metadata retained

abox_code_format

format-code

Format HTML/CSS/YAML or minify supported HTML/CSS; preserves active markup, not a sanitizer

abox_xml_json

convert-xml-json

Explicit lossy XML↔JSON mapping; verifies source mapping rather than semantic round-trip

abox_markdown_html

markdown-to-html

Small Markdown dialect to standalone passive HTML with CSP; links never opened

In v0.9.0, audio inputs are simple mono/stereo PCM16/Float32 WAV. Version 0.10.0 expands the admitted codecs as described below. MP4 creation is limited to 60 seconds, 1800 frames and a 2,073,600-pixel output, and needs a supported installed browser encoder. Receipt OCR includes its worker, WebAssembly and English data; no processing asset is downloaded. These are operation-specific bounds, not a universal process-memory guarantee. EXIF edits use a separate local edits_path with bounded set/remove instructions; see metadata editing. Editing retains the thumbnail and other metadata and does not anonymize an image. See additional text formatting for exact HTML/CSS/YAML options, XML/JSON mapping losses and the passive Markdown dialect. Formatting existing HTML keeps its active content; it is distinct from the Markdown renderer's escaped, restricted output.

Operations added in v0.10.0

These additions are included in the public v0.10.0 release. Always check the installed adapter's capabilities before choosing a new operation.

MCP operation

CLI command

Result and important boundary

abox_heic_convert

convert-heic

Admitted HEVC still photos/grids to a new image directory; bundled offline codec and predecode coded/reference budgets

abox_avif_convert

convert-avif

One reduced-header AV1 still photo to JPEG/PNG/WebP; animation and unsupported geometry refused

abox_pdf_redact

redact-pdf

Explicit local point-coordinate masks to a fresh lossless image-only PDF; all pages flattened, no source objects copied

abox_audio_extract

extract-audio

Admitted sound to WAV, or exact AAC packet extraction from MP4/M4A/MOV to M4A without decoding video

abox_video_compress

compress-video

Re-encode admitted H.264 toward a byte target; report fitted honestly

abox_video_crop

crop-video

Exact displayed-image coordinates from local JSON to a re-encoded MP4

abox_video_frame

grab-video-frame

Frame at or before the requested time to a lossless PNG; every output pixel checked

abox_video_reverse

reverse-video

Re-encode reversed frames; silent by default, optional bounded AAC reversal/re-encoding

abox_video_timelapse

timelapse-video

Faster silent MP4 with explicit frame selection, rate and size

abox_video_to_gif

video-to-gif

Sampled video range to a bounded palette GIF; sound omitted

abox_video_rotate_bake

bake-video-rotation

Apply source orientation and an additional quarter turn to re-encoded pixels; identity output display matrix

Audio editing/trimming also accepts bounded MP3 Layer III, AAC-LC ADTS and an ordinary unedited MP4/M4A/MOV AAC-LC track. Compressed WAV output needs a native packet decoder; the adapter never falls back to unbounded whole-file decoding. Check actual decoded duration because priming/padding can reduce sample counts. See audio codecs and extraction.

DICOM now also admits a strict single-frame JPEG Lossless Process 14 subset, with complete entropy admission and independent stored-sample checks. It remains a technical preview and can retain burned-in identifiers. See DICOM details.

Use exact user-provided geometry for PDF redaction; the adapter does not find sensitive regions or erase the original. Searchable text, signatures and interactive PDF features are lost. For image conversion, read HEIC/AVIF limits, including 8-bit SDR output and metadata omission. No route downloads a codec while processing a file.

The seven new video processing routes admit stable progressive 8-bit 4:2:0 H.264 before native decoding; this is not arbitrary codec support. Generated MP4 frames are decoded and checked for shape, timing and count, while copied AAC packets are compared exactly. Lossy encoding, color conversion and final-frame timing can change. Matrix-only video rotation remains available separately without decoding or re-encoding.

Operations added in v0.11.0

These controls open a separate visible browser and keep private content and pairing secrets outside agent context. The person starts/connects and approves capture/peers there. They require a graphical desktop and directly reachable devices; host-candidate connections can require the same network. File operations remain offline. These controls are included in the verified public v0.11.0 release; historical v0.10.0 receipts remain above.

MCP operation

CLI command

Explicit role and important boundary

abox_share_session

share-session

host preloads selected local text/files; reader requests approval and explicitly saves into a new output directory

abox_camera_session

camera-session

host grants video-only camera permission and approves viewers; viewer receives live video, without recording

abox_walkie_session

walkie-session

Microphone-granted host holds Talk; listener receives without microphone capture

abox_voice_oncall_session

voice-oncall-session

host receives/moderates callers with an optional UI password; microphone-granted sender holds Talk

abox_live_status

live-status

Safe counts/state/expiry for this adapter process; no invitations, received text or media

abox_live_stop

live-stop

Close one companion and release devices/transports; unfinished saves removed and completed saves retained

At most four windows run together. ttl_minutes defaults to 30 and ranges from 1 to 120. Share attachments are at most 16 files, 128 MiB each and 256 MiB combined; text is at most 50,000 characters and 200,000 UTF-8 bytes. Peers' names never select filesystem paths: explicit receive saves use generated .bin or .txt names with exclusive writes. The synthetic loopback-looking address has no actual HTTP listener or file server. See live settings and CLI lifetime, Privacy and Security.

For PDF protection, pass open_password_file/owner_password_file; for unlocking, pass password_file. Their exact UTF-8 text, including BOM and final newline, is used without trimming. Never put passwords or decoded code contents into a tool request or conversation. Document scans and ID photos require dimensions and source pixel coordinates from a local JSON file, supplied deliberately by the user. The adapter does not infer sensitive regions or face landmarks.

Use the CLI

The CLI provides the same operations without MCP. These commands use Node in a source checkout. In a release bundle, replace node with ./runtime/node, or .\runtime\node.exe on Windows:

node bin/abox.mjs capabilities
node bin/abox.mjs doctor
node bin/abox.mjs compress-image --request-file /absolute/path/compress.json
node bin/abox.mjs resize-image --request-file /absolute/path/resize.json
node bin/abox.mjs convert-image --request-file /absolute/path/convert.json
node bin/abox.mjs split-pdf --request-file /absolute/path/split.json
node bin/abox.mjs merge-pdf --request-file /absolute/path/merge.json
node bin/abox.mjs select-pdf-pages --request-file /absolute/path/select.json
node bin/abox.mjs rotate-pdf --request-file /absolute/path/rotate.json
node bin/abox.mjs images-to-pdf --request-file /absolute/path/photos.json
node bin/abox.mjs inspect-exif --request-file /absolute/path/inspect.json
node bin/abox.mjs remove-exif --request-file /absolute/path/metadata.json
node bin/abox.mjs hash-file --request-file /absolute/path/hash.json
node bin/abox.mjs compress-pdf --request-file /absolute/path/compress-pdf.json
node bin/abox.mjs watermark-pdf --request-file /absolute/path/watermark.json
node bin/abox.mjs image-to-ico --request-file /absolute/path/icon.json
node bin/abox.mjs svg-to-image --request-file /absolute/path/svg.json
node bin/abox.mjs image-layout --request-file /absolute/path/layout.json
node bin/abox.mjs pdf-to-csv --request-file /absolute/path/tables.json
node bin/abox.mjs format-json --request-file /absolute/path/format.json
node bin/abox.mjs base64 --request-file /absolute/path/base64.json
node bin/abox.mjs image-to-data-uri --request-file /absolute/path/embedding.json
node bin/abox.mjs convert-yaml-json --request-file /absolute/path/conversion.json
node bin/abox.mjs format-xml --request-file /absolute/path/xml.json
node bin/abox.mjs generate-qr --request-file /absolute/path/qr.json
node bin/abox.mjs generate-barcode --request-file /absolute/path/barcode.json
node bin/abox.mjs diff-text --request-file /absolute/path/diff.json
node bin/abox.mjs inspect-gif --request-file /absolute/path/gif-info.json
node bin/abox.mjs split-gif --request-file /absolute/path/gif-frames.json
node bin/abox.mjs trace-image --request-file /absolute/path/trace.json
node bin/abox.mjs stack-images --request-file /absolute/path/stack.json
node bin/abox.mjs redact-image --request-file /absolute/path/redaction.json
node bin/abox.mjs generate-passwords --request-file /absolute/path/passwords.json

A compression request file contains:

{
  "input_path": "/absolute/path/photo.jpg",
  "output_path": "/absolute/path/photo-small.jpg",
  "target_bytes": 500000,
  "format": "keep",
  "allow_resize": true
}

A page-range request file contains:

{
  "input_path": "/absolute/path/document.pdf",
  "output_dir": "/absolute/path/document-parts",
  "mode": "ranges",
  "ranges": ["1-3", "4-6"],
  "keep_bookmarks": true
}

An image metadata request file contains:

{
  "input_path": "/absolute/path/photo.jpg",
  "output_path": "/absolute/path/photo-clean.jpg",
  "keep_orientation": true,
  "keep_icc": true
}

--request '<JSON>' is also supported, subject to your shell's quoting rules. Request files avoid those differences. The CLI prints JSON summaries; it never prints file contents.

Limits and behavior

  • Image compression, resizing and conversion: JPEG, PNG, and static WebP. Animated images are refused. Resizing fits the full image (contain) or crops centrally (cover); upscaling is disabled by default. Re-encoding can change colors and removes source metadata. A no-op resize preserves original bytes.

  • Metadata removal: JPEG, PNG, and WebP containers, including their animation.

  • PDF page operations: unencrypted input, up to 5,000 pages and 1,000 output files. Merging accepts 2–32 PDFs, at most 128 MiB combined. Page selection preserves the order and repetition of comma-separated terms. Ranges expand ascending: 3,1-2,3 produces 3,1,2,3; use explicit terms for reverse order. Merging PDFs with colliding interactive form field names is currently unsupported by the source engine and fails before creating an output. Tool responses include at most 20 output entries. Larger splits also write a local manifest.json containing every output path and its source pages.

  • Images to PDF: still JPEG, PNG or WebP, one image per page, up to 128 MiB combined and 80 megapixels per image. Defaults to A4, automatic orientation, contain, no margins. keep can embed original JPEG streams with their metadata; remove metadata first when a clean document is required. lossless preserves decoded image pixels; jpeg re-encodes using the requested quality.

  • Checksums: read-only, streaming, supports empty files and up to 8 GiB.

  • PDF compression: presets recompress supported images and rewrite structure. smallest uses 96 DPI / 0.55 quality, screen 130 / 0.68, print 220 / 0.82, and gentle keeps resolution with 0.90 quality. dpi and quality can override those settings. It does not search for a byte target; check smaller and actual savings. The output can be larger. Changed images can lose detail. CMYK and unsupported image encodings are retained where safely readable. Unusual filter-wrapped JPEG encodings and nonidentity EXIF orientation in JPEG streams are refused before processing to prevent unintended image rotation. Standard PDF metadata is removed by default; embedded images, attachments and visible content can still contain personal information.

  • PDF watermarks: one rasterized line, up to 200 characters, centered or tiled, on all pages or only the first. Local fonts affect appearance. Up to 100,000 stamps. Watermarks can be removed by editors and do not redact or protect data.

  • ICO: still JPEG, PNG or WebP to one file with up to ten sizes from 16 to 256 pixels. auto stores sizes up to 64 as DIB and larger sizes as PNG. Padding preserves aspect ratio and transparency; crop fills the square; stretch can distort. The directory, frame dimensions and rendered pixels are verified.

  • SVG: uncompressed, self-contained static SVG to PNG, JPEG or WebP; up to 16,384 pixels per side and 80 megapixels. Active content, foreign objects, external references, CSS imports/escapes and animations are refused. JPEG fills transparency with white by default. Fonts and colors can vary by browser.

  • Image layouts: 2–32 still JPEG, PNG or WebP images, at most 128 MiB combined and 80 megapixels per input. Output is at most 8192 pixels per side and 32 megapixels. Grids default to two square columns; horizontal/vertical strips preserve original aspect ratios. Contain retains the full image; cover crops. New pixels are rendered in 8-bit SDR and source metadata is not copied.

  • PDF to CSV: selectable text only, no OCR. Tables, headings, dates and amounts are inferred and can be incomplete or wrong; review the CSV against the PDF. UTF-8 BOM, comma delimiter, CRLF lines. Multiple tables have a blank separator row. Year-bearing dates and inferred amounts are normalized; auto date order falls back to day-first when ambiguous. Formula-like text is escaped with an apostrophe by default. Up to 1000 tables, 64 columns per table, 100000 data rows, one million cells/glyphs and 16 MiB of output. Structural verification does not establish extraction accuracy.

  • PDF table extraction currently accepts unfiltered and Flate streams without predictors. It conservatively refuses legacy LZW/RunLength, ASCII-armoured streams and predictors, even in unused images or xrefs. Blocked PDF names in printed text can also cause refusal. Stream expansion is limited to 16 MiB per Flate stream and 64 MiB cumulatively before buffering decoded data.

  • JSON: UTF-8 input up to 8 MiB, nesting up to 256 levels, output up to 32 MiB. Preserves raw number and string tokens, duplicate keys and object key order. Sorting is opt-in. Both pretty and minified output end with a newline. The parser accepts at most 250000 syntax nodes, including object keys.

  • Base64: arbitrary binary files, including empty files; input up to 8 MiB, output up to 32 MiB. Standard encoding is padded; URL-safe encoding is unpadded. Relaxed decoding accepts whitespace, missing padding and either alphabet. Canonical validation requires the exact requested spelling and zero unused bits. Encoded/decoded bytes are written locally and never returned to the agent.

  • Image data URIs: input up to 8 MiB and output up to 32 MiB. Signature-based MIME recognition does not prove image validity or rendering. Original bytes, metadata and SVG markup are preserved; this is not a sanitizer. The five output shapes use .txt for uri, .css for css-rule/css-var, .html for html, and .md for markdown. Auto encoding uses readable percent encoding only for exact UTF-8 SVG in a standalone URI. SVG embedding envelopes use Base64 to avoid HTML, CSS or Markdown changing the URI's spelling.

  • YAML/JSON conversion: UTF-8 input up to 2 MiB, output up to 16 MiB, 128 nesting levels and 100000 syntax nodes. Supports the website's YAML subset, not every YAML feature. Anchors, aliases, custom tags and multiple documents are refused. Ordered values, duplicate keys and large numeric tokens are retained; comments, formatting and string escape spelling can be lost. Optional natural key sorting applies only when converting YAML to JSON. Output must round-trip before it is written. The source printer cannot handle root multiline strings or some four-space lists of mappings; those requests are refused. Use the default two-space indentation for lists of mappings.

  • XML formatting: the same 2 MiB input, 16 MiB output, 128 nesting levels and 100000-node limits. UTF-8 only; DTDs and custom entities are refused, without fetching external resources. Predefined entities and valid numeric references are supported. Mixed content and xml:space follow the source engine's preservation rules; formatting may change insignificant whitespace and quotes.

  • QR codes and barcodes: read payloads directly from UTF-8 files, including any final newline. Payloads and completed barcode digits are not returned to the agent. QR input is at most 4 KiB; barcode input at most 256 bytes. Actual encoder and verification capacity can be smaller. Retail check digits are computed or validated; invalid supplied digits fail. Code 39 can uppercase text and optionally add its checksum. SVG is the default and needs no browser; PNG uses the installed browser. Output is at most 8192 per side, 32 megapixels and 16 MiB. Barcode verification permits at most 400 alternating runs; plain ITF is limited to 4–40 digits. Check warnings and test the saved code with the intended scanner before printing or relying on it.

  • Text comparison: two UTF-8 files, including empty files, at most 4 MiB and 20000 logical lines combined; NUL-containing binary inputs are refused. Writes a new .diff or .patch up to 8 MiB. The patch always describes the original strings, including BOMs, line endings and final newline differences; ignore options affect comparison_stats only. Primary counts describe line content, with terminator changes reported separately. The adapter verifies that patch replay reconstructs the right input from the left. Header labels are fixed a and b. Large differences can produce coarse rewrite hunks; minimality is not guaranteed. Neither source is modified or patched.

  • Each other input: at most 128 MiB.

  • GIF inspection: 32 MiB, 1000 source frames, 8192 per side and 32 megapixels per screen or patch. Reads headers without verifying LZW or pixels. Frame results are paginated; comments, application text and palette colors are excluded.

  • GIF extraction: at most 200 selected PNGs, 128 Mi decoded patch pixels and 300 million walked screen pixels. Each PNG is at most 32 MiB and the total PNG output at most 256 MiB; the upstream working-buffer admission also applies. Strict decoding refuses partial frames. Composited mode applies preceding disposal; stored mode returns patches. Output pixels are checked after PNG encoding, and a local timing manifest lists every frame. Needs a local browser.

  • Image tracing: still JPEG/PNG/WebP, at most 4096 per side and 4 megapixels. Single-color, lossy SVG shape approximation for logos or line art; not photo reconstruction. At most 100000 boundary edges, 1000 contours and 400000 SVG bytes. Passive path structure and rendered path pixels are checked.

  • Stacking: 2–8 opaque, equal-size still JPEG/PNG/WebP frames, up to 128 MiB combined, 4096 per side and 4 megapixels. No alignment, resizing, focus stacking or RAW development. Uses encoded 8-bit SDR RGB; PNG pixels are lossless after stacking, JPEG is lossy. Both stacking and tracing require the local browser.

  • Redaction: explicit 0-based integer rectangles in the decoded display image. Expected dimensions must match exactly; rectangles cannot be clipped. Up to 100 regions, 16384 per side, 32 megapixels and 128 million rectangle pixels including overlaps. Solid black fill only, flattened PNG, with all decoded pixels checked. Covered pixels are exactly opaque black; outside alpha is retained and visible colors are within one 8-bit step of the decoded source. The new raster is 8-bit SDR and excludes source metadata. Does not locate sensitive content; review coverage before sharing. Requires the local browser.

  • Passwords: cryptographic generation into a new plaintext .txt, one secret per line, at most 100 results and 64 KiB. Defaults to 24 characters; passphrase mode defaults to six EFF words. Settings come from local JSON up to 16 KiB. Secrets, secret hashes and samples never appear in tool results. No browser or vault.

  • Compression: up to 80 megapixels and two minutes per image. auto may adjust the output extension to match the selected format. Other modes require the output extension to match the actual bytes, including an unchanged original.

  • Compression may resize an image unless allow_resize is false. A file that already meets the target can pass through unchanged, retaining its metadata. Use metadata removal when that is part of the task.

  • Metadata removal can retain animation in PNG and WebP because it edits their containers; compression refuses animation rather than flattening it.

  • PDF splitting creates new PDFs. Document tags and metadata may be removed; digital signatures do not survive as valid signatures. Output page counts are verified. Bookmark preservation is enabled by default where supported.

  • Metadata removal retains orientation and ICC profiles by default to preserve appearance. Set keep_orientation and keep_icc to false to remove those supported fields too; display orientation or colors may change. It does not establish that an image is anonymous.

Downloading a release or installing a browser uses the network. Processing files through this adapter does not send their bytes over the network. The agent and its host still receive paths, settings, summaries, and errors. The adapter needs no account or API key.

See the plugin privacy notice for the data handled by the adapter and the separate responsibilities of the agent host.

The compressor detects common browser installations. Set ABOX_BROWSER_PATH to an existing browser executable if needed. The browser's sandbox must work on the host OS; Linux detection prefers installed stable Chrome over generic Chromium builds. The plugin does not download a browser during processing.

This plugin and the website's development MCP

This plugin runs file operations locally over MCP stdio. The separate website catalogue at mcp-dev.abox.tools/mcp exposes find_browser_tools: it accepts a public search query, locale, and limit, then returns tool links and an interactive catalogue. It accepts no files or filenames and does not process files. Its source is the website's development catalogue worker.

The mcp-dev endpoint is for development. This repository's release workflow does not deploy the website or publish a production catalogue endpoint. For directory submissions and MCP registration, see Publishing. For Gemini CLI, Vercel skills.sh, Cursor and other distribution options, see Platform support and publishing. For additional directories, local distribution and their account or licensing requirements, see Other sharing platforms.

Developer setup and other MCP hosts

Use the release bundle for installation without development tools. To develop from a source checkout, install Node.js 22.15 or later, then run:

npm ci --ignore-scripts
npm test
npm run test:browser
npm run doctor

Source setup downloads npm dependencies. The source checkout's mcp.json uses Node from the host; release packaging replaces it with the bundled executable. A developer can add this repository marketplace with codex plugin marketplace add A-Box-of-Tools/abox-tools-plugin, then install it in the desktop app and run Setup in the installed copy. See the official OpenAI packaging guide.

For another host supporting local MCP stdio, point its configuration at the extracted bundle's executable and server script using absolute paths:

{
  "mcpServers": {
    "abox": {
      "command": "/absolute/path/to/bundle/runtime/node",
      "args": ["/absolute/path/to/bundle/bin/abox-mcp.mjs"]
    }
  }
}

On Windows, use runtime/node.exe. Escape backslashes in JSON or use forward slashes. A source checkout can use node instead of the bundled executable. Follow the host's own configuration format; do not replace unrelated settings.

Maintain the reused code

To refresh the pinned website sources from a local website checkout:

npm run sync-upstream -- --source /absolute/path/to/etoolbox

Review the vendor diff and provenance, retain license notices, and run the checks above. A v* tag starts .github/workflows/release.yml: it tests, builds all four platform bundles, builds a universal MCPB, and checks extracted MCP execution on all four platforms before publishing the GitHub Release. A successful tagged release then publishes its verified metadata to the Official MCP Registry using GitHub's short-lived identity token. Claude and OpenAI directory reviews remain separate submissions; see Publishing.

Available Tools

73 tools
abox_audio_editEdit local audioA

Reverse, change speed with optional pitch preservation, apply gain or peak-normalize admitted PCM16/Float32 WAV, MP3 Layer III or AAC-LC ADTS/MP4/M4A/MOV audio. Compressed input is admitted and decoded in bounded packets. Writes PCM16 or Float32 WAV, verifies all encoded samples and reports clipping and bounded decoder priming omissions. Uses the existing website effects and local browser without network access.

NameRequiredDescriptionDefault
bitsNo
speedNo
gain_dbNo
reverseNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_pitchNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
volume_modeNogain
normalize_dbNo

TDQS

A3.5/5.0
Behavior4/5

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

Annotations only declare write/openWorld/idempotency/destructive flags; the description adds real behavioral context: compressed input is decoded in bounded packets, output is PCM16/Float32 WAV, all encoded samples are verified, and clipping plus bounded decoder priming omissions are reported. It also clarifies no network access, consistent with openWorldHint=false. Not a full 5 since it omits what happens to an existing output file and whether partial output is left on failure.

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?

Four dense sentences, front-loaded with the operations and followed by format/verification detail, with no filler. The closing clause about 'the existing website effects and local browser' is slightly vague and adds less than the rest, but overall the text earns its space.

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

Completeness4/5

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

For a 9-parameter local file mutation tool with no output schema, the description covers input formats, output format, verification and diagnostics, which is most of what an agent needs. The remaining gap is parameter interaction (volume_mode vs gain_db/normalize_db) and behavior when output_path already exists.

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?

With only 22% schema description coverage, the description must compensate, and it does partially: it maps reverse, speed with optional pitch preservation (keep_pitch), gain vs peak-normalize (volume_mode), and PCM16/Float32 output (bits). But gain_db, normalize_db (and their mutual exclusivity with volume_mode), and the speed range limits are never explained, leaving nearly half the parameters undocumented in both places.

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

Purpose4/5

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

Specific verbs and resource: reverse, speed change with optional pitch preservation, gain/peak-normalize on named audio formats, writing WAV output. An agent can immediately tell this is an audio-transformation tool rather than a trim/extract tool. However, it never names or contrasts with the closest siblings (abox_audio_trim, abox_audio_extract), so sibling differentiation is left implicit.

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

Usage Guidelines2/5

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

The description lists what operations exist but never states when to choose this tool over abox_audio_trim or abox_audio_extract, nor any prerequisites or exclusions (e.g. what happens if no transform parameter is set). Usage must be inferred entirely from the operation list.

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

abox_audio_extractExtract local audioA

Extract admitted MP3 or AAC-LC audio into a new WAV, optionally mixing to mono, or copy AAC-LC packets exactly into a new audio-only M4A. Accepts bounded ordinary MP4/M4A/MOV audio tracks and AAC ADTS; ignores picture payloads and never decodes video. M4A copy needs no browser and refuses bits/channels controls. WAV uses bounded packet decoding in the installed local browser. No runtime encoder or dependency download.

NameRequiredDescriptionDefault
bitsNo
formatNowav
channelsNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare it is a non-read-only, non-idempotent, non-destructive write, which is minimal. The description adds substantial beyond-schema behavior: accepted containers (MP4/M4A/MOV audio tracks, AAC ADTS), that picture payloads are ignored and video is never decoded, that M4A copy requires no browser while WAV uses the local browser for bounded packet decoding, that there is no runtime encoder or dependency download, and that bits/channels controls are refused for M4A.

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?

Front-loads the core action and format split in the first two sentences before adding environment constraints. It is dense with jargon ('admitted', 'bounded ordinary') and slightly over-packed, but almost every clause carries operational information an agent needs.

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

Completeness4/5

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

No output schema and five parameters, so the description has to do real work; it covers accepted inputs, mode selection, and dependency/runtime behavior well. Remaining gaps are the semantics of the bits parameter and what happens if output_path already exists, which matter for a non-idempotent write tool.

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 description coverage is only 40%, so the description carries extra burden. It explains the format choice and the channels/bits refusal rule for M4A, which helps, but never explains what 'bits' 16 vs 32 means or how it interacts with format, and says nothing about output_path overwrite semantics beyond the schema's path text.

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?

States a precise verb and resource ('Extract admitted MP3 or AAC-LC audio into a new WAV ... or copy AAC-LC packets exactly into a new audio-only M4A') with the two output variants enumerated. It is clearly distinct from sibling audio tools like abox_audio_edit and abox_audio_trim, which imply editing rather than demux/extract.

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?

Gives a concrete decision rule between the two modes: WAV for transcoding/mono mixing, M4A copy for lossless packet copy that needs no browser and refuses bits/channels. It does not explicitly point to sibling alternatives (e.g. abox_audio_edit, abox_audio_trim) when the user actually wants modification rather than extraction, so it stops short of naming alternatives.

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

abox_audio_trimTrim local audioA

Keep ordered time ranges (including repeats) or cut marked ranges from admitted WAV, MP3 Layer III or AAC-LC audio. Fade joins by 5 ms by default; set fade_ms:0 for no fades. Times must fit the actual decoded audio, which can omit bounded priming samples. Source cut mode omits gaps of at most 1 ms. Writes a new WAV and verifies every encoded sample. Requires a local browser.

NameRequiredDescriptionDefault
bitsNo
modeNokeep
rangesYes
fade_msNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4/5.0
Behavior5/5

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

Goes well beyond annotations: it discloses that a new WAV is written (consistent with destructiveHint=false since input is untouched), that every encoded sample is verified, the default 5 ms fade and how to disable it, priming-sample trimming caveats, and the 1 ms gap rule in cut mode. It also flags the non-obvious requirement of a local browser, which an agent could not infer from schema or annotations.

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?

Front-loaded with the core operation and mode distinction, then progressively finer caveats. Every sentence carries content, though the priming-sample and 1 ms-gap details are dense and sit ahead of arguably more important facts (output WAV, local-browser requirement).

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

Completeness4/5

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

For a 6-parameter mutation tool with no output schema, the description covers what is produced (a new WAV), verification behavior, format support, and the browser dependency. It stops short on output bit-depth semantics, overwrite behavior if output_path exists, and time units, which an agent might still need.

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

Parameters4/5

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

With only 33% schema description coverage, the description compensates well for mode, fade_ms, and ranges (ordering, repeats, cut-mode gap behavior). Gaps remain: the units for range start/end are never stated, and the bits parameter (16/32) is not explained anywhere. Strong but not fully compensatory.

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

Purpose4/5

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

States a specific verb (keep/cut ranges = trim) plus the resource (audio), and even enumerates supported formats (WAV, MP3 Layer III, AAC-LC). It is easy to separate from non-audio siblings, but it never explicitly contrasts with the near-neighbor abox_audio_edit, so sibling differentiation is only implicit.

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

Usage Guidelines3/5

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

The keep-vs-cut semantics are conveyed, along with constraints (times must fit decoded audio, local browser required), but there is no explicit 'use this instead of X' routing to abox_audio_edit or abox_audio_extract. Usage is implied by the operation description rather than framed as when/when-not guidance.

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

abox_avif_convertConvert a local AVIF still imageA

Convert one admitted reduced-header AV1 still AVIF to a new PNG, JPEG or WebP using the website browser codecs. Inspects AV1 sequence and frame display dimensions before decoding and compares every output pixel. Refuses animation, movie tracks and unsupported derived layouts. Source metadata is omitted; color, HDR and precision may change. Requires a local browser.

NameRequiredDescriptionDefault
formatNopng
qualityNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations cover the safety profile (readOnly=false, destructive=false, openWorld=false), and the description adds context they can't: an environment precondition (local browser), a fidelity disclosure ('Source metadata is omitted; color, HDR and precision may change'), and a verification behavior ('compares every output pixel'). It does not say what happens if output_path already exists, which matters for a write tool.

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?

Four dense sentences, front-loaded with the core action before constraints and caveats. Some phrasing is jargon-heavy ('admitted reduced-header AV1', 'unsupported derived layouts') and costs the reader without adding precision, but nothing is padded.

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

Completeness4/5

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

For a 4-parameter conversion tool with no output schema, the description covers inputs, refusals, fidelity trade-offs, and the runtime prerequisite. Gaps are the undocumented 'quality' parameter and the lack of any statement about return values or output-file overwrite behavior.

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

Parameters2/5

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

Schema coverage is only 50% — input_path/output_path are documented, but 'format' and 'quality' have no descriptions. The description partially compensates by naming the three target formats, mapping loosely to the format enum, but it never mentions 'quality' or what it governs, so one of four parameters is unexplained in both schema and prose.

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

Purpose4/5

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

Opens with a specific verb + resource + outputs: 'Convert one admitted reduced-header AV1 still AVIF to a new PNG, JPEG or WebP', which tells an agent exactly what goes in and comes out. It narrows scope with 'Refuses animation, movie tracks and unsupported derived layouts'. It never names the obvious sibling (abox_image_convert / abox_heic_convert), so differentiation from alternatives is left implicit.

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?

Gives clear eligibility conditions and explicit exclusions: still images only, animation and movie tracks refused, and a hard precondition 'Requires a local browser'. What's missing is routing guidance — it does not say to use abox_image_convert for other formats or abox_video_* for animations, so the agent must infer the alternative.

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

abox_barcode_generateCreate a local barcodeA

Read exact payload text from a local file and create a verified SVG or PNG Code 128, EAN-13, UPC-A, EAN-8, ITF-14, ITF or Code 39 barcode. Retail check digits are computed or validated; invalid supplied digits are refused. Source-defined quiet zones and optional human-readable labels. Verification capacity can limit long inputs. PNG requires a local browser. Payload and completed digits are not returned.

NameRequiredDescriptionDefault
textNo
scaleNo
formatNosvg
heightNo
symbologyNocode128
backgroundNo#ffffff
foregroundNo#000000
input_pathYesAbsolute path of the UTF-8 payload file. Text is kept exact, including any final newline.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
code39_checkNo

TDQS

A3.8/5.0
Behavior4/5

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

Beyond the annotations (readOnly=false, openWorld=false, destructive=false), the description discloses substantive behavior: check digits are computed or validated and invalid supplied digits are refused, source-defined quiet zones apply, verification capacity can limit long inputs, and the payload is not returned. That is real context the annotations do not carry. Minor gap: nothing about overwrite behavior at output_path.

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?

Front-loaded with the core action and supported formats, followed by constraints in a tight sequence of sentences. Dense but nearly every clause carries a distinct fact; the only soft spot is the somewhat opaque 'verification capacity can limit long inputs' phrasing.

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

Completeness3/5

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

With 10 parameters, no output schema and 20% schema coverage, the description should do more. It correctly states that payload and completed digits are not returned (important since there is no output schema), but it never explains what the tool reports on success/failure or the meaning of the rendering parameters.

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 description coverage is only 20%, and only input_path/output_path are documented in the schema. The description compensates partially by covering format, human-readable labels, quiet zones and digit validation, but leaves scale, height, background/foreground, code39_check and the text flag's exact meaning (human-readable captions) unexplained.

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?

States a specific verb+resource ('create a verified SVG or PNG ... barcode') and enumerates the exact symbologies supported, plus the file-based payload source. An agent can distinguish this from abox_qr_generate and abox_svg_to_image without opening any schema.

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

Usage Guidelines3/5

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

The file-based input model and the 'PNG requires a local browser' constraint imply usage context, but there is no explicit when-to-use/when-not-to-use statement or named alternative (e.g. QR codes vs. Code 128, or when to prefer abox_svg_to_image). Usage is inferable rather than stated.

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

abox_base64Encode or decode a local Base64 fileA

Encode arbitrary local file bytes as Base64 text or decode Base64 into a new binary file using the existing abox.tools byte codec. Supports standard padded or URL-safe unpadded encoding. Relaxed decoding accepts whitespace, either alphabet and missing padding; canonical decoding requires the requested exact spelling and zero unused bits. Supports empty files, verifies a byte round trip, and never returns file contents.

NameRequiredDescriptionDefault
modeYes
url_safeNo
canonicalNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.3/5.0
Behavior4/5

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

Adds real value beyond annotations: it verifies a byte round trip and 'never returns file contents', so an agent knows the result is a file on disk, not data in the response. It also notes local-path-only scope. It does not say whether an existing output file is overwritten, which matters given destructiveHint=false.

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?

Front-loads what the tool does, then the encoding variants, then behavioral guarantees. Dense but every clause carries information; the relaxed/canonical clause is compact but slightly jargon-heavy for an agent skimming.

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

Completeness4/5

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

A 5-parameter, no-output-schema mutation tool that mostly covers what's needed: writes a file, returns no contents, round-trip verified. The remaining gap is overwrite/error behavior on the output path, which the annotations alone don't settle.

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

Parameters4/5

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

Schema coverage is only 40%, with url_safe and canonical undocumented in the schema, but the description compensates: url_safe is mapped to 'standard padded or URL-safe unpadded' and canonical to 'exact spelling and zero unused bits'. This is exactly the semantic gap-filling expected at low coverage; the path parameters rely on their schema descriptions.

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?

States specific verbs (encode/decode) and resources (local file bytes -> Base64 text, Base64 -> new binary file). No sibling tool shares this resource, and the bidirectional scope is clear enough that an agent can pick it over abox_file_hash or abox_image_data_uri.

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?

Explains the two operating modes and the condition selecting relaxed vs canonical decoding ('relaxed accepts whitespace, either alphabet and missing padding; canonical requires the requested exact spelling'). It gives clear context but never states exclusions or when to prefer a different tool (e.g., for hashing vs encoding).

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

abox_business_profilePreview a local business profileA

Render an illustrative business listing preview from a local JSON configuration into a passive SVG or PNG, using the website profile engine. Optional local photo is re-encoded. Does not contact or publish to Google or verify a real listing. Config text remains in the output file. Requires a local browser.

NameRequiredDescriptionDefault
scaleNo
formatNopng
photo_pathNoAbsolute local filesystem path. URLs and network shares are refused.
config_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.2/5.0
Behavior4/5

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

Adds useful behavior beyond the annotations: no Google contact/publishing, config text is preserved in the output file, optional photos are re-encoded, and a local browser is required. It does not cover overwrite behavior or permission expectations, but the annotations already establish the local, non-destructive write profile.

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

Conciseness5/5

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

Front-loads the core action and output format, then adds only meaningful constraints: local photo handling, no Google contact, config retention, and browser requirement. No sentence is redundant.

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

Completeness4/5

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

No output schema exists, but the description sufficiently explains that the result is an SVG/PNG written to output_path and emphasizes local-only behavior. Minor gaps remain around scale behavior and whether output_path is overwritten.

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 60%, with descriptions for the three path parameters but not for scale or format. The description reinforces local JSON config input, optional photo re-encoding, and SVG/PNG output, but leaves scale semantics to the schema.

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?

States a specific verb and resource: "Render an illustrative business listing preview" from a local JSON configuration into SVG or PNG. The business-listing preview focus and local-config input distinguish it from the file/image/PDF utility siblings.

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?

Clearly frames the use case as an illustrative local preview and explicitly excludes contacting/publishing to Google or verifying a real listing. It also notes the local browser requirement, though it does not call out an alternative sibling tool.

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

abox_camera_sessionOpen a direct remote camera windowA

Open the local companion for abox.tools Remote Camera as host or viewer. The person clicks Start or Connect, grants camera permission, and approves viewers in the window. Pairing uses the existing abox.tools service; live media goes directly between peers with no relay or recording. No capture begins on opening the window. Pairing metadata reaches the service; no frames, notes or pairing secrets are returned to the agent.

NameRequiredDescriptionDefault
roleYes
room_nameNo
ttl_minutesNo

TDQS

A4/5.0
Behavior5/5

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

Beyond annotations, the description discloses the human-in-the-loop flow, permission granting, viewer approval, direct peer-to-peer media with no relay or recording, and that opening the window does not begin capture. It also clarifies what reaches the pairing service and what is not returned to the agent, which is unusually strong behavioral context for a session tool.

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

Conciseness5/5

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

The purpose is front-loaded, and each subsequent sentence adds material behavioral or privacy context. There is no repetition or filler despite covering a complex session flow.

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

Completeness4/5

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

For a complex, open-world session tool with no output schema, the description covers the important behavior, privacy boundaries, and what the agent does or does not receive. It is only incomplete in that it does not address room_name or ttl_minutes semantics.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needs to carry parameter meaning. It explains the host/viewer distinction behaviorally, but does not explain room_name or ttl_minutes at all, leaving two of three parameters without semantic guidance beyond their names.

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

Purpose4/5

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

The description states a specific verb and resource: opening the local companion for abox.tools Remote Camera as host or viewer. It is clearly distinct from file-processing siblings, but it does not explicitly name or contrast with adjacent session tools like abox_share_session or abox_walkie_session.

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?

It gives clear context for use: remote camera sessions where a person opens a local companion, grants permission, and approves viewers. It does not state when to prefer this over other session tools or when not to use it, so it falls short of full alternative-routing guidance.

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

abox_capabilitiesabox.tools local capabilitiesA
Read-onlyIdempotent

List supported local operations, limits, and installed browser availability. Does not read user files.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds a genuine extra commitment — "Does not read user files" — which is useful privacy context beyond the annotations, but says nothing about cost, freshness, or whether results are cached/environment-dependent.

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

Conciseness5/5

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

Two short sentences, no waste, with the positive capability statement front-loaded and the privacy caveat second. Every sentence earns its place.

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

Completeness4/5

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

For a zero-param, no-output-schema discovery tool the description covers the main question (what capability information is available) including browser availability, which is environment-dependent. It could say slightly more about what the caller gains before invoking it, but nothing essential is missing.

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

Parameters4/5

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

Zero-parameter tool, so per the baseline there is nothing for the description to disambiguate. The schema is trivially complete for an empty object.

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

Purpose4/5

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

States a specific verb ("List") and a concrete resource set (supported local operations, limits, installed browser availability). This reads clearly as a discovery/meta tool, distinguishing it from the sibling operation tools (image_compress, pdf_split, exif_remove) without needing to name them.

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

Usage Guidelines3/5

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

Usage is only implied: mentioning "limits" and "installed browser availability" hints the agent should call this before attempting an operation, but there is no explicit "use when" or "do not use for" statement, and no routing to siblings.

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

abox_code_formatFormat local HTML, CSS or YAMLA

Pretty-print HTML/CSS/YAML or minify supported HTML/CSS with the existing website engines. Verifies protected raw text, supported syntax tokens or YAML values before saving. HTML formatting can change ordinary whitespace and implicit closing; this is not HTML sanitization or a promise of identical rendering. Never executes input or fetches linked resources. Requires no browser.

NameRequiredDescriptionDefault
indentNo
minifyNo
languageYes
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already cover safety (no destruction, no open world), and the description adds substantive context beyond them: pre-save verification, that HTML formatting alters whitespace and implicit closing, that this is not sanitization, and that nothing is executed or fetched. What's missing is behavior around writing to output_path, such as whether an existing file is overwritten.

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?

Four tightly packed sentences with no filler, and the core capability is stated first. The caveat sentences are dense but each carries distinct information; the prose is slightly crammed rather than bloated.

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

Completeness3/5

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

The description covers what the tool does and key caveats, but with no output schema it should say what is returned and what happens to an existing output_path for a write tool. Those operational details are absent, leaving a moderate gap.

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 only 40%, and the description adds just one parameter-relevant nuance: minification applies only to supported HTML/CSS, implying YAML cannot be minified. It says nothing about indent values or how minify interacts with indent, leaving real gaps relative to the low coverage.

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

Purpose4/5

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

States a specific verb pair (pretty-print/minify) and concrete resources (HTML/CSS/YAML), which cleanly separates it from siblings like abox_xml_format and abox_json_format. It doesn't name those siblings explicitly, so the differentiation is inferable rather than stated.

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

Usage Guidelines3/5

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

Usage is implied by the language list and the pretty-print/minify framing, but there is no explicit when-to-use/when-not guidance or routing to abox_xml_format or abox_json_format for XML/JSON inputs. The agent must infer the boundary itself.

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

abox_code_readRead a code in a local imageA

Scan a still local JPEG, PNG or WebP for one QR code or supported linear barcode using the website readers. Write decoded text and parsed fields only into a new local JSON report. Tool results contain found/symbology and geometry, never payload text or URLs; links are never opened. A no-code image produces a found:false report. Requires a local browser.

NameRequiredDescriptionDefault
thoroughNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial behavior beyond the annotations: payload text is never returned in tool results (only found/symbology/geometry), decoded data is written to a new local JSON report, links are never opened, and a local browser is required. This is exactly the kind of privacy and side-effect disclosure annotations can't convey, and it is consistent with readOnlyHint=false given the report write.

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?

Dense but front-loaded: the read action comes first, followed by result/output semantics and the browser prerequisite. The opening sentence is long with many clauses, but no sentence is filler.

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?

With no output schema, the description correctly carries the return-value burden by explaining found/symbology/geometry versus payload-in-JSON, plus the no-code case. An agent has everything needed to decide to call it and interpret results.

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 67%, and the description reinforces the input_path/output_path local-only constraint without adding syntax detail. The third parameter, 'thorough' (boolean, default true), is neither described in the schema nor referenced in the description, leaving a real behavioral knob undocumented.

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?

States a specific verb and resource ('Scan a still local JPEG, PNG or WebP for one QR code or supported linear barcode') and names the output artifact. It is clearly distinguishable from the generation siblings abox_qr_generate and abox_barcode_generate, which produce rather than read codes.

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?

Gives clear qualifying context: still images only (JPEG/PNG/WebP), one code per image, local browser required, and the outcome for a no-code image. It does not explicitly name an alternative tool or state exclusions beyond the local-file requirement, so it falls short of a 5.

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

abox_dicom_inspectInspect a local DICOM imageA
Read-onlyIdempotent

Inspect bounded flat PS3.10 DICOM files in known native transfer syntaxes or the strict one-frame RLE/JPEG-lossless subsets. Checks compressed geometry and complete stream structure before source decoding. Returns technical shape and counts without patient names, dates, private values or instance identifiers. Sequences and unsupported transforms are refused. Requires no browser.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and openWorld=false, so the bar is lower; the description still adds material behavior: sequences and unsupported transforms are refused, output excludes patient names/dates/private values/identifiers, and no browser is required. It stops short of describing failure modes or error reporting.

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?

Five short sentences, front-loaded with the accepted-input scope. Dense with domain jargon (PS3.10, RLE, transfer syntax) but every sentence carries information; no filler.

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

Completeness4/5

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

With no output schema, the description usefully characterizes the return as 'technical shape and counts' minus identifiers, which is enough for an agent to know what to expect. A note on what a refusal looks like would close the remaining gap.

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 description coverage is 100% and there is a single parameter, so the schema already documents input_path fully (absolute local path, URLs/network shares refused). The description adds only the "requires no browser" framing, which is marginal for this dimension; baseline 3 applies.

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

Purpose4/5

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

States a specific verb (inspect) and resource (DICOM PS3.10 files) with explicit scope limits: bounded, flat, known native transfer syntaxes, strict one-frame RLE/JPEG-lossless subsets. This clearly separates it from abox_dicom_render, though it never names the sibling explicitly.

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?

"Checks compressed geometry and complete stream structure before source decoding" implies its role as a pre-flight validation step before rendering, which is real usage context. It does not explicitly say when to prefer abox_dicom_render instead or what to do when the inspection is refused.

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

abox_dicom_renderRender a local DICOM frameA

Render one admitted integer monochrome or unsigned 8-bit RGB DICOM frame into PNG with an explicit or full-range technical window. Supports native pixels and strict one-frame/one-fragment RLE or JPEG-lossless. Independently checks stored samples and every output pixel. No diagnosis or clinical preset; burned-in identifiers can remain. Unsupported streams or source-decoder discrepancies are refused. Requires a local browser.

NameRequiredDescriptionDefault
frameNo
invertNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
window_widthNo
window_centerNo

TDQS

A4.1/5.0
Behavior5/5

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

The description adds substantial behavioral context beyond annotations: it discloses supported pixel formats, compression modes, independent sample and pixel checks, refusal of unsupported streams or decoder discrepancies, retention of burned-in identifiers, and the local-browser requirement. These details are consistent with readOnlyHint=false because the tool writes a PNG output.

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

Conciseness5/5

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

The description is front-loaded with the core action and then adds only material constraints. Despite technical density, each sentence contributes useful selection or invocation context without padding.

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 complex DICOM rendering tool with no output schema, the description covers supported inputs, output format, validation behavior, refusal cases, clinical limitations, and environment requirements. An agent has enough information to decide whether this tool is appropriate and how to invoke it safely.

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 only 33%, so the description must compensate. It usefully clarifies windowing and frame scope, but does not explain invert, exact window_width/window_center semantics, or the frame parameter's range and default, leaving meaningful parameter ambiguity.

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

Purpose4/5

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

The description states a specific verb and resource: rendering a single DICOM frame into PNG with defined pixel formats and windowing. It clearly distinguishes the operation from inspection siblings by emphasizing rendering, though it does not explicitly name abox_dicom_inspect as the non-rendering alternative.

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

Usage Guidelines3/5

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

Usage is implied through constraints such as 'No diagnosis or clinical preset' and 'Requires a local browser,' but there is no explicit guidance on when to choose this over abox_dicom_inspect or other related tools. The reader must infer the intended technical-rendering use case.

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

abox_document_scanScan local document imagesA

Perspective-correct explicit document corners from a local JSON file, then clean up photo, color, grayscale or monochrome pages into a new PDF or one PNG. Source warping insets edges by 3–6 pixels. Does not detect corners or perform OCR. Verifies rendered output pixels or PDF image payloads and page layout. Requires a local browser.

NameRequiredDescriptionDefault
dpiNo
modeNocolour
formatNopdf
qualityNo
max_sideNo
strengthNo
margin_mmNo
page_sizeNo
config_pathYesAbsolute local filesystem path. URLs and network shares are refused.
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is covered; the description adds genuinely new context such as the 3–6 pixel edge inset caused by source warping and that output pixels/PDF payloads and page layout are verified. The local-browser requirement is a real operational constraint not expressed in structured fields. It doesn't say whether an existing output file at output_path is overwritten, which is a notable omission for a writer tool.

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?

Roughly four tight sentences, front-loaded with the core action and followed by constraints and the non-goals. The telegraphic style ('Perspective-correct explicit document corners...') is dense but every clause carries information; no filler.

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

Completeness2/5

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

With 11 parameters, 18% schema coverage, no output schema, and a required JSON config whose structure is never described, the definition leaves too much undocumented for an agent to invoke it confidently. It should at minimum sketch the config file's contents and explain the tuning knobs (strength, quality, dpi, max_side).

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

Parameters2/5

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

Schema description coverage is only 18% (just the three path params), yet the description does not explain dpi, quality, max_side, strength, margin_mm, page_size or format. The one useful addition is that config_path supplies 'explicit document corners', hinting at the JSON payload's purpose, but the format of that JSON and the meaning of strength/quality remain unspecified in both places.

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 names a specific verb and pipeline: perspective-correct explicit document corners from a local JSON file, then clean up pages into a PDF or PNG. It also distinguishes itself from neighbors by ruling out OCR / corner detection and from generic converters by requiring a browser renderer. An agent can tell this apart from siblings like abox_image_convert or abox_receipt_extract.

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?

It gives clear exclusions ('Does not detect corners or perform OCR') and an environmental prerequisite ('Requires a local browser'), which effectively tells the agent when this tool is the wrong choice. It stops short of naming explicit alternatives (e.g. use abox_receipt_extract for OCR), so it lands at 4 rather than 5.

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

abox_exif_editEdit local image EXIF tagsA

Set or remove selected EXIF tags in a JPEG, PNG or WebP using a bounded local JSON edits file. Reparse and verify exact raw tags, retained thumbnail, compressed picture payload and other container blocks. Other metadata remains; this is not anonymization. Rebuilt EXIF can invalidate undocumented maker-note offsets. Values never enter tool arguments or results. Requires no browser.

NameRequiredDescriptionDefault
edits_pathYesLocal UTF-8 JSON with distinct set/remove EXIF tag instructions. Values stay in that file and the edited image.
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.9/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing the post-write verification pass, that thumbnails and compressed picture payloads are retained, that non-targeted metadata survives, and the real risk that rebuilt EXIF can invalidate undocumented maker-note offsets. It also states the privacy property that values never enter arguments or results, which the annotations cannot express.

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?

Front-loaded with the core action and formats, then layers the verification and risk caveats. Sentences are dense and telegraphic ('Requires no browser', 'Values never enter tool arguments or results') but each carries distinct information, so little is wasted.

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

Completeness4/5

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

With no output schema and a non-trivial binary rewrite, the description covers verification, retained blocks, residual metadata and known risk. It stops short of saying whether output_path may overwrite an existing file or whether the input is left untouched, which an agent would want before calling.

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% and each path parameter is already documented as an absolute local path with network shares refused. The description reinforces that edits_path is a bounded JSON file holding values rather than inline arguments, but adds little beyond what the schema already says.

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

Purpose4/5

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

States a specific verb pair (set/remove) and resource (EXIF tags) with supported formats (JPEG, PNG, WebP) and the edit mechanism (local JSON edits file). It implicitly separates itself from bulk-removal tools via 'Other metadata remains; this is not anonymization', but never names the exif_remove sibling that would be the actual alternative.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: inputs must be local absolute paths, values must live in a companion edits file, and the operation is scoped to selected tags. The 'not anonymization' clause hints at a different tool but no sibling is named and no explicit when-to-use/when-not conditions are given.

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

abox_exif_inspectInspect local image metadataA
Read-onlyIdempotent

Read the metadata inventory of a local JPEG, PNG or WebP without modifying it. Reports presence and counts of supported metadata blocks; private tag values and image bytes are not returned.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world, so the bar is lower. The description still adds real value by disclosing the output scope: presence and counts of supported blocks, with private tag values and image bytes withheld — information an agent cannot get from the annotations.

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

Conciseness5/5

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

Two tight sentences with the non-modifying guarantee and supported formats front-loaded, followed by the report scope. No filler.

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

Completeness4/5

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

With no output schema, the description carries the burden of describing returns, and it does so at a high level (presence and counts, values withheld). It does not enumerate which metadata blocks are 'supported', leaving some ambiguity, but nothing critical for correct invocation is missing.

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% and the single input_path parameter is fully documented in the schema, including the refusal of URLs and network shares. The description adds nothing parameter-specific, so the baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource ('Read the metadata inventory') and narrows the scope to local JPEG, PNG or WebP files. The 'without modifying it' clause and 'presence and counts' framing clearly separate inspection from siblings like abox_exif_edit or abox_exif_remove, though no sibling is named explicitly.

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

Usage Guidelines3/5

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

Usage is implied by 'inspect' and the read-only framing, but it never says when to choose this over abox_exif_edit, abox_exif_remove, abox_gif_inspect or abox_file_hash. No exclusions or prerequisites are stated beyond the format list.

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

abox_exif_removeRemove local image metadataA

Remove supported metadata from JPEG, PNG, or WebP containers without re-encoding image data. Re-inspects output. Defaults preserve an orientation-only EXIF block and ICC color profile when present. Writes a new local file; does not anonymize visible content.

NameRequiredDescriptionDefault
keep_iccNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_orientationNo

TDQS

A4.3/5.0
Behavior4/5

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

Goes well beyond the annotations: it discloses that the operation is lossless (no re-encoding), that it writes a new file rather than mutating the input (consistent with destructiveHint=false), that the output is re-inspected, and which metadata survives by default. What it omits is the reason for idempotentHint=false — e.g. whether an existing output_path is overwritten or rejected.

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

Conciseness5/5

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

Four short sentences, each carrying a distinct payload: what it does, verification behavior, defaults, and output/non-goal. No filler and the core operation leads.

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 4-parameter write tool with no output schema, the description covers operation, formats, lossless guarantee, preservation defaults, output location, and the explicit non-goal of anonymizing visible content. The only residual gap is overwrite behavior on an existing output file, which is minor.

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

Parameters4/5

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

Schema coverage is 50% — the two boolean flags carry no schema descriptions — but the description compensates by stating that defaults preserve an orientation-only EXIF block and the ICC profile, which explains exactly what keep_orientation and keep_icc control. Path semantics are covered by the schema's own 'absolute local path, no URLs' text.

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?

A specific verb ("Remove") plus a precisely bounded resource ("metadata from JPEG, PNG, or WebP containers") plus a key qualifier ("without re-encoding image data"). The format restriction and the lossless framing make it unmistakable against siblings like abox_image_compress or abox_pdf_split.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: 'Writes a new local file' and 'does not anonymize visible content' clarify scope but never name an alternative tool or a when-not condition. There is no guidance about prerequisites (does the output file need to not exist?) or what to do when metadata is unsupported.

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

abox_file_hashCalculate local file checksumsA
Read-onlyIdempotent

Stream a local file through the existing abox.tools checksum engines. Supports empty files and files up to 8 GiB. Returns selected hexadecimal digests without file contents or modifications. SHA-256 is the default.

NameRequiredDescriptionDefault
algorithmsNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/closed-world, so the description earns credit for adding real behavioral facts: streaming (memory-safe for large files), support for empty files and up to 8 GiB, and the guarantee that no file contents are returned or modified. It does not mention failure modes for >8 GiB files or hashing errors.

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

Conciseness5/5

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

Three short sentences, front-loaded with the action, then constraints, then the default. Every sentence carries information the agent needs; nothing is redundant with the title.

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

Completeness4/5

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

For a two-parameter read-only tool with annotations covering safety, the description covers input scope, size limits, output form (hex digests) and the default algorithm — enough to call it correctly without an output schema. Ordering of returned digests relative to the requested algorithms list is the only notable omission.

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 50% — only input_path is documented in the schema, while `algorithms` has no description. The description adds the size/empty-file constraint and notes SHA-256 is the default, but never names the available algorithms (md5/sha1/sha384/sha512) or says multiple digests can be requested together, leaving the enum array under-explained.

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?

States a concrete verb and resource — streaming a local file through checksum engines to produce hexadecimal digests — which no sibling tool does, so it is naturally distinct from the format/convert family. An agent can immediately tell this is a hashing utility, not a media transformer.

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

Usage Guidelines3/5

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

Usage is implied by 'Stream a local file' and the 8 GiB/empty-file support, and the local-only scope is reinforced in the path parameter. However there is no explicit statement of when to prefer this tool (e.g. integrity verification, deduplication) or what to do when a URL must be hashed instead.

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

abox_gif_createCreate a local animated GIFA

Turn 1 to 32 ordered still JPEG, PNG or WebP images into a new GIF with per-frame timing, size, fit, palette, dithering, transparency and looping controls. Verifies complete LZW streams, timing, palette pixels and composited frames. GIF color quantization, resizing and centisecond timing are lossy. Requires a local browser.

NameRequiredDescriptionDefault
fitNocontain
loopNoforever
widthNo
colorsNo
ditherNo
heightNo
delay_msNo
max_sideNo
delays_msNo
backgroundNo#ffffff
loop_countNo
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
transparentNo
shared_paletteNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare the generic mutation profile (readOnly=false, destructive=false, non-idempotent, closed-world). The description adds real value: post-write verification of LZW streams, timing, palette pixels and composited frames, plus an explicit warning that quantization, resizing and centisecond timing are lossy, and an environment requirement. It omits overwrite behavior for output_path, which is the main remaining gap for a write operation.

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

Conciseness5/5

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

Three sentences, front-loaded with the core operation and then constraints and caveats. No filler, and each clause adds a distinct fact (formats, controls, verification, lossiness, environment).

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

Completeness3/5

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

For a 15-parameter write tool with no output schema and near-zero schema descriptions, the definition covers purpose, limits, validation and lossy behavior well. It is still missing overwrite semantics, default values and the precedence between mutually exclusive sizing/timing/loop parameters, which an agent needs to call it correctly on the first try.

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 description coverage is only 7% across 15 parameters, so the description carries most of the burden. It enumerates the control families (timing, size, fit, palette, dithering, transparency, looping) and the 32-frame cap, which is genuinely helpful, but it does not disambiguate the competing pairs (delay_ms vs delays_ms, width/height vs max_side, loop vs loop_count) or state defaults, leaving several parameters still opaque.

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?

States a specific verb and resource ('Turn ... ordered still images into a new GIF') plus the accepted input formats and the control surface. This clearly separates it from siblings like abox_gif_inspect, abox_gif_split and abox_gif_to_mp4, which consume rather than produce GIFs.

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

Usage Guidelines3/5

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

The input-count bound (1 to 32), format restriction (JPEG/PNG/WebP) and 'Requires a local browser' hint at when the tool applies, but no alternative is named and there is no explicit when-not guidance. An agent could reasonably wonder whether to use abox_images_to_video or abox_gif_inspect first; the description does not route it.

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

abox_gif_inspectInspect a local GIFA
Read-onlyIdempotent

Inspect bounded GIF headers, frame rectangles, timing, disposal and palette counts using the website analyzer. Does not decode or verify LZW pixels. Reports structural damage without modifying the input. Private comments, application text and palette values are excluded. Frame summaries are paginated using a zero-based offset.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
frame_limitNo
frame_offsetNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, and the description usefully corroborates and extends that: 'Reports structural damage without modifying the input' plus explicit disclosure of what is withheld (comments, application text, palette values) and that frame summaries are paginated. It does not describe error behavior for malformed/non-GIF input or output shape, keeping it below 5.

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

Conciseness5/5

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

Four tight sentences, each carrying distinct information: scope, exclusion, side-effect/privacy profile, pagination. Front-loaded with the verb and resource, no filler.

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

Completeness4/5

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

With no output schema, the description does the work of saying what is reported (headers, frame rects, timing, disposal, palette counts, structural damage) and how results are paged. Missing only edge-case behavior (invalid path handling, whether damage reporting aborts the inspection).

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 description coverage is only 33% — frame_limit and frame_offset have no schema descriptions. The description partially compensates by explaining that frame summaries are paginated with a zero-based offset, but frame_limit gets no explicit meaning (default 20, max 100) in the prose. Partial compensation for a documented gap.

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?

States a specific verb ('Inspect') and enumerates the exact resource facets covered: headers, frame rectangles, timing, disposal, palette counts. That is clearly distinguishable from siblings like abox_gif_split, abox_gif_create, or abox_video_inspect.

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?

Gives clear negative scope ('Does not decode or verify LZW pixels') and a privacy scope ('Private comments, application text and palette values are excluded'), which tells an agent when this tool is sufficient rather than a decoder. It stops short of naming an alternative sibling (e.g. abox_gif_split) for pixel-level work, so it is not a full when/when-not routing statement.

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

abox_gif_splitExtract local GIF framesA

Extract selected or all GIF frames into a new local directory of lossless PNGs with a timing manifest. Default composited mode applies preceding frames and disposal; stored mode exports individual patches. Strict decoding refuses damaged or partial frames. Verifies each PNG pixel buffer. Requires the local browser for PNG encoding; does not scale frames.

NameRequiredDescriptionDefault
modeNocomposited
framesNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_dirYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations say readOnly=false and destructive=false but nothing about safety, verification or environment. The description adds real context: output is verified pixel-by-pixel, decoding is strict and aborts on damaged frames, a local browser is required for encoding (implying cost/latency), and frames are not scaled. It does not say what happens if output_dir already exists, which matters given idempotentHint=false.

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

Conciseness5/5

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

Five dense sentences, each adding a distinct fact (output, mode semantics, error policy, verification, environment constraint) with the primary outcome front-loaded. No filler or restatement of the tool name.

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

Completeness4/5

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

With no output schema, the description carries the return-value burden and does describe the artifacts produced (PNG directory + timing manifest). Missing details are modest: file naming convention, manifest format, and behavior on a pre-existing output directory for a non-idempotent writing tool.

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

Parameters4/5

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

Schema coverage is only 50%, and the description compensates meaningfully by defining what 'composited' and 'stored' modes actually do rather than just listing the enum values. 'Selected or all frames' implies the purpose of the frames array but gives no indexing convention or bounds, which remains a gap.

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?

States a specific verb, resource and output artifact: extract GIF frames into a new local directory of lossless PNGs plus a timing manifest. That output shape cleanly separates it from sibling GIF tools (abox_gif_inspect, abox_gif_create, abox_gif_to_mp4) without needing to name them.

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

Usage Guidelines3/5

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

Explains the two modes and their defaults, which tells an agent how to configure a call, and 'strict decoding refuses damaged or partial frames' implies a failure mode. But it never says when to reach for this tool instead of abox_gif_inspect or abox_gif_to_mp4, so the alternative-routing guidance is left implicit.

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

abox_gif_to_mp4Convert a local GIF to MP4A

Encode one verified GIF playback cycle into a silent H.264 MP4, preserving source frame timing and flattening transparency over a chosen background. Odd dimensions are padded. Verifies all output frames and timing. Requires a local browser with a supported native H.264 encoder; no external encoder download.

NameRequiredDescriptionDefault
bitrateNo
backgroundNo#ffffff
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.2/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavior: output is silent H.264, timing is preserved, transparency is flattened over a chosen background, odd dimensions are padded, and output frames/timing are verified. It also surfaces a significant environmental constraint: a local browser with a supported native H.264 encoder is required and no external encoder is downloaded. These details materially help an agent anticipate behavior and constraints.

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

Conciseness5/5

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

The description is front-loaded with the core action and then layers in constraints and behavior in four compact, information-dense sentences. There is no filler, and the most important details come first.

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

Completeness4/5

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

For a conversion tool with no output schema, the description covers core behavior, verification, and environmental requirements well. The remaining gap is that it does not describe the return value or whether the output path is returned, and bitrate semantics remain unexplained. These are meaningful but not fatal omissions given the otherwise rich behavioral detail.

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 description coverage is only 50%, so the description needs to compensate. It adds meaning for the background parameter by explaining that transparency is flattened over a chosen background, but it never explains the bitrate parameter, its units, or effects. The input_path and output_path semantics are already covered by the schema.

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 states a specific action and resource: encoding a GIF playback cycle into a silent H.264 MP4. It is clearly distinguishable from sibling tools like abox_gif_inspect, abox_gif_split, and abox_images_to_video because it names the exact source and output formats. An agent can identify the tool's job without opening 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 Guidelines3/5

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

The conversion purpose is clear from the name and first sentence, so usage is strongly implied. However, the description does not explicitly say when to use this tool versus alternatives such as abox_images_to_video or abox_gif_create, nor does it state when not to use it. It provides runtime requirements but no routing guidance.

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

abox_heic_convertConvert local HEIC photosA

Convert admitted HEVC still HEIC images, including one-level tiled grids, into a new directory of JPEG, PNG or WebP images. Uses the unchanged bundled website codec offline. Inspects all item extents, HEVC sequence dimensions and reference budgets before decode; verifies output dimensions and compares every output pixel. Includes all admitted top-level pictures. Metadata is omitted and output is 8-bit SDR; JPEG/WebP are lossy. Requires a local browser.

NameRequiredDescriptionDefault
formatNojpeg
qualityNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_dirYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.9/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: metadata is stripped, output is 8-bit SDR, JPEG/WebP are lossy, a local browser is required, and the tool pre-validates extents/dimensions and compares every output pixel post-decode. The destructiveHint=false annotation is consistent with writing only to a new directory, and the description explains the data-loss behaviors (metadata omission) that annotations cannot express.

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?

Front-loaded with the action and output, then layered with validation and caveat details. Dense and jargon-heavy ("admitted", "reference budgets") but each sentence carries distinct information; only the validation-procedure sentence borders on over-detail for a tool description.

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

Completeness4/5

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

No output schema exists, and the description never states what the result looks like (counts, paths, per-file verification report) despite describing a verification step. Otherwise it covers format, quality implications, environment requirements, and data-loss caveats adequately for a 4-parameter tool.

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 only 50%: input_path and output_dir are documented in the schema, but format and quality are not. The description mentions JPEG/PNG/WebP formats (mapping loosely to format) but says nothing about quality semantics or defaults above the schema's own default 0.92, so it does not compensate for the gap.

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

Purpose4/5

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

States a specific verb (convert) and resource (HEIC images, including tiled grids) with the destination artifact (a new directory of JPEG/PNG/WebP). It is clearly not abox_image_convert or abox_avif_convert by virtue of the HEIC/HEVC scope, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

"Requires a local browser" and "offline" imply the execution context, but the description never says when to prefer this over abox_image_convert or abox_avif_convert, nor when not to use it. Usage is inferable, not stated.

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

abox_height_compareDraw a local height comparisonA

Render locally configured figures, names and heights into a passive SVG or PNG using the existing website chart engine. Supports person silhouettes and plain object rectangles, technical ruler options and explicit units. Input names and heights remain in the output file. Requires a local browser.

NameRequiredDescriptionDefault
scaleNo
formatNopng
config_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the general non-destructive annotations, the description adds critical operational behavior: it requires a 'local browser' to function, and clarifies that 'Input names and heights remain in the output file,' which is specific data retention behavior.

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 efficient, front-loading the primary action ('Render locally configured figures...') and immediately listing the key capabilities. The language is dense but highly descriptive, avoiding padding.

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?

Considering the complexity of a rendering tool that requires local resources and specific visual configurations, the description is complete. It covers the engine, the supported elements, the file types, and the environmental requirements.

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

Parameters4/5

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

Since schema coverage is only 50%, the description compensates by explaining what the tool processes (names and heights) and what options are available (silhouettes, technical ruler options, explicit units), adding meaning to the data inputs.

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 title and description are highly specific: 'Render locally configured figures, names and heights' into SVG or PNG. This clearly defines the function (creating a visual comparison chart) and the resource (data visualization).

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 explains the intended use case (rendering figures, names, and heights) and lists the specific features (silhouettes, technical rulers). While it doesn't explicitly list sibling alternatives, the highly specific nature of the function serves as a clear boundary.

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

abox_id_photoMake a local ID photo and print sheetA

Apply custom numeric photo rules and explicit crown, chin and eye landmarks from a local JSON settings file. Writes a JPEG photo, print sheet and measurement report into a new directory. No face detection, country rules or official approval. Checks geometry, DPI, output dimensions and lossy JPEG pixel error. Requires a local browser.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_dirYesAbsolute local filesystem path. URLs and network shares are refused.
settings_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.2/5.0
Behavior5/5

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

Goes well beyond annotations: discloses that it writes a JPEG photo, print sheet and measurement report into a new directory; performs geometry, DPI, output dimension and lossy JPEG pixel error checks; and requires a local browser. These details clarify side effects and constraints consistent with readOnlyHint=false and destructiveHint=false.

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

Conciseness5/5

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

Four sentences, front-loaded with the core action, then outputs, exclusions, checks and the local-browser requirement. Every sentence carries useful information with no repetition or filler.

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

Completeness4/5

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

For a mutation tool with no output schema, the description adequately covers written artifacts, validation checks and runtime requirements. It does not describe the expected JSON settings format or failure behavior, but those are reasonable external details for a three-path-parameter tool.

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 description coverage is 100%, so all three path parameters are already documented in the schema, including the rejection of URLs and network shares. The description mentions the roles of input, settings and output artifacts but adds no syntax or parameter-level detail beyond the schema, so 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?

States a specific verb ('Apply custom numeric photo rules') and resource ('ID photo', 'print sheet'), distinguishes the tool from generic image siblings by clarifying 'No face detection, country rules or official approval', and names the exact artifacts written. An agent can tell what this tool uniquely does.

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

Usage Guidelines3/5

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

Usage context is implied by 'custom numeric photo rules and explicit crown, chin and eye landmarks from a local JSON settings file', but no sibling alternatives are named and there is no explicit when-to-use vs when-not-to-use guidance beyond the 'no face detection' exclusion. An agent must infer that other image tools are not appropriate.

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

abox_image_compressCompress a local imageA

Compress a still JPEG, PNG, or WebP to a target byte count using the existing abox.tools search and local browser codecs. Writes a new local file. Check fitted; a target can be missed. Already-small files pass through with metadata. Auto can adjust the output extension.

NameRequiredDescriptionDefault
formatNokeep
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
allow_resizeNo
target_bytesYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare it is a non-read-only, non-idempotent write; the description adds substantive behavior beyond that: it writes a new local file, the target can be missed so 'fitted' should be checked, small files pass through with metadata retained, and 'auto' may change the output extension. It omits overwrite semantics for an existing output_path, which matters for a non-idempotent writer.

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?

Four short sentences, front-loaded with purpose before caveats, with no filler. Some phrasing is overly telegraphic ('Check fitted'), which costs a little clarity for its brevity.

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

Completeness3/5

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

For a file-writing tool with no output schema, the definition covers the main failure mode (missed target) but leaves return-value shape, overwrite behavior on output_path, and the effect of allow_resize unstated. Adequate but with visible gaps given the 5-parameter, mutation nature.

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 only 40%, so the description carries extra burden. It clarifies target_bytes ('target byte count'), the 'auto' value of format, and implicitly resizing, but says nothing about allow_resize or the 'keep'/'jpeg'/'png'/'webp' format choices, leaving half the parameters to the schema alone.

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

Purpose4/5

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

States a specific verb (compress) plus the accepted resource types (JPEG, PNG, WebP) and the governing constraint (target byte count). It is clearly distinct from siblings like abox_pdf_split and abox_exif_remove, though it does not explicitly contrast with them.

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

Usage Guidelines3/5

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

The description implies the use case (hit a byte budget) and adds caveats about misses and pass-through, but never states when to prefer this over e.g. abox_exif_remove or when it is inappropriate. Usage must be inferred from the target_bytes requirement.

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

abox_image_convertConvert a local imageA

Convert a still JPEG, PNG, or WebP into JPEG, PNG, or WebP using the existing abox.tools codecs. JPEG transparency is filled with the requested background. Writes a new local image and verifies its format and dimensions. Re-encoding may remove metadata.

NameRequiredDescriptionDefault
formatYes
qualityNo
backgroundNo#ffffff
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations establish it is a non-read-only, non-destructive, non-idempotent, closed-world write. The description adds genuinely non-obvious traits: JPEG transparency is filled with the requested background, the output format and dimensions are verified after writing, and metadata may be stripped by re-encoding — a real data-loss caveat that the destructiveHint=false annotation does not convey.

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

Conciseness5/5

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

Three tight sentences, zero filler. The capability and format matrix come first, then the notable behaviors, then the caveat — appropriately front-loaded and each sentence carries distinct information.

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

Completeness4/5

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

With no output schema, the description usefully states what the tool does with the output ('writes a new local image and verifies its format and dimensions'). Remaining gaps are modest: no mention of overwrite behavior on an existing output_path, and no return-value shape, but the critical call requirements are covered.

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 40%, so two of the non-path parameters (format, quality) lack schema descriptions. The description recovers the format enum implicitly and explains the background parameter's role in JPEG transparency, but quality (default 0.92) and its interaction with lossless PNG/WebP are never addressed. Partial compensation only.

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

Purpose4/5

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

States a specific verb and resource ('Convert a still JPEG, PNG, or WebP into JPEG, PNG, or WebP') plus the output artifact ('Writes a new local image'). This is clearly distinct from sibling operations like abox_image_compress, abox_image_resize, or abox_svg_to_image, though it never explicitly names them for contrast.

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

Usage Guidelines3/5

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

Usage is implied by the format-pair framing, so an agent can infer this is for format change rather than size or dimension change. However, there is no explicit 'use X when Y' routing against the large family of image siblings, and no stated preconditions beyond the local-path requirement carried by the schema.

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

abox_image_data_uriEmbed a local image as a data URIA

Encode original image bytes into a new local .txt data URI, .css rule/custom property, .html image tag or .md image. Uses signature-based type detection and verifies byte preservation. Standalone UTF-8 SVG URIs can use percent encoding; SVG embedding shapes use Base64 to preserve bytes through their syntax. Keeps source metadata and SVG markup; does not verify rendering or sanitize SVG. Returns paths, sizes and metadata counts.

NameRequiredDescriptionDefault
shapeNouri
identifierNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
svg_encodingNoauto

TDQS

A3.9/5.0
Behavior4/5

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

Adds real context beyond the annotations: signature-based type detection, byte-preservation verification, metadata/SVG markup retention, and an explicit negative scope ('does not verify rendering or sanitize SVG'). It stops short of saying whether output_path may overwrite an existing file, which matters given readOnlyHint=false and idempotentHint=false.

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?

Four tight sentences, each carrying a distinct fact (what it makes, how encoding is chosen, what is preserved, what is not done, what is returned). No filler, though the SVG-encoding sentence is dense enough to require a second read.

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

Completeness4/5

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

With no output schema, the closing 'Returns paths, sizes and metadata counts' usefully covers return values, and the non-sanitization/no-render-verification caveats close the main safety gap. Remaining gap is the undocumented `identifier` parameter, which leaves one of five inputs unexplained across both schema and description.

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 only 40%, so the description has to carry weight; it partially does by mapping output shapes onto the `shape` enum in prose and hinting at the auto/base64 svg_encoding split. The `identifier` parameter (presumably the CSS custom-property/HTML name) is never mentioned, and the shape descriptions are not tied to the literal enum values.

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?

States a concrete verb (encode image bytes) plus the exact resource produced (a local .txt data URI, .css rule/custom property, .html tag, or .md image), enumerating all output shapes. This separates it from abox_base64 and abox_image_convert without opening any schema.

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

Usage Guidelines3/5

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

Offers conditional guidance for the svg_encoding choice ('Standalone UTF-8 SVG URIs can use percent encoding; SVG embedding shapes use Base64'), which is genuinely useful. However it never states when to pick this tool over the nearby abox_base64 or abox_svg_to_image siblings, so routing remains inferential.

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

abox_image_layoutCombine local images into a layoutA

Arrange 2 to 32 still JPEG, PNG or WebP images in input order as a grid or horizontal/vertical strip using the existing abox.tools engine. Supports gaps, padding, contain or cover, cell ratios and transparency. Writes a new PNG/JPEG/WebP up to 8192 pixels per side and 32 megapixels. Grid defaults to two square columns; strips preserve original ratios. Re-encoding can change pixels and removes source metadata.

NameRequiredDescriptionDefault
fitNocontain
gapNo
ratioNo
widthNo
formatNopng
layoutNogrid
columnsNo
paddingNo
qualityNo
backgroundNo
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.8/5.0
Behavior4/5

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

Goes meaningfully beyond the annotations: it states a new file is written, that re-encoding can change pixels, that source metadata is stripped, and gives hard size caps (8192 px/side, 32 MP). That is real context not present in readOnlyHint/destructiveHint. The one notable omission is whether an existing file at output_path is overwritten or refused.

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?

Four dense sentences, front-loaded with the core verb+resource and followed by constraints and caveats; almost every clause carries information. The phrase 'using the existing abox.tools engine' is the one bit of near-filler.

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

Completeness4/5

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

For a 12-parameter mutation tool with no output schema and 8% schema coverage, the description supplies the essential behavioral envelope (limits, format outcomes, metadata loss, layout defaults). Overwrite semantics for output_path and the quality/background parameters are the remaining gaps an agent would want.

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

Parameters4/5

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

Schema description coverage is only 8%, so the description must compensate, and it largely does: it explains gap, padding, contain/cover, cell ratios, format choices, columns default for grid, and the 8192 px/32 MP resolution ceiling. It leaves quality and the width default (1600) and background color semantics unaddressed, which is why this is not a 5.

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

Purpose4/5

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

Names a specific verb (Arrange) and resource (still JPEG/PNG/WebP images) plus the exact output modes (grid, horizontal/vertical strip), which cleanly separates it from siblings like abox_images_to_video or abox_image_stack. It never names a sibling to contrast against, so it stops just short of the top band.

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

Usage Guidelines3/5

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

Usage is implied by the input constraints (2-32 still images, absolute local paths) and by the stated defaults (grid = two square columns, strips preserve ratios), which helps an agent pick options. There is no explicit statement of when to prefer this over abox_image_stack or abox_images_to_pdf, and no exclusion guidance beyond the implicit 'still images only'.

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

abox_image_redactRedact regions in a local imageA

Permanently replace explicitly selected image rectangles with opaque black pixels using the website redaction engine. Read expected decoded image dimensions and rectangle coordinates from a local JSON file. Accepts still JPEG, PNG or WebP and writes a flattened PNG without copying source metadata. Verifies every decoded output pixel. Does not detect sensitive content or prove the chosen regions cover it. Requires the local browser.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
regions_pathYesLocal UTF-8 JSON: {image_width, image_height, regions:[{x,y,width,height}]}. Dimensions must match decoded display pixels; whole 0-based rectangles must fit fully. Fixed black fill.

TDQS

A4.1/5.0
Behavior4/5

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

With annotations declaring a non-readonly, non-destructive write, the description adds real context beyond them: the operation is permanent, output is a flattened PNG, source metadata is not copied, every decoded output pixel is verified, and a local browser is required. It does not state that transparency/color profile may be lost or how out-of-bounds regions are reported, keeping it just short of a 5.

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 effect and permanence are front-loaded in the first sentence, followed by inputs, outputs, verification and limits in a tight sequence with no filler. It reads as a dense list of clauses, which is efficient but slightly terse to scan.

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

Completeness4/5

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

For a 3-parameter write tool with no output schema, the description covers effect, accepted formats, output format, metadata handling, verification and the browser prerequisite. Remaining gaps (error behavior for mismatched dimensions or non-fitting rectangles) are partially covered by the schema.

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 description coverage is 100% and the schema already documents all three paths and the JSON region format in detail. The description only restates that dimensions and rectangles come from a local JSON file, so it adds little beyond the schema; baseline 3 applies.

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?

"Permanently replace explicitly selected image rectangles with opaque black pixels" gives a precise verb, resource and effect, and no sibling tool performs redaction, so it is unambiguous against the surrounding compress/resize/convert family. The follow-on sentence naming the accepted input formats and PNG output further pins down the operation.

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?

It makes clear the regions must be chosen in advance and supplied via a JSON file, and explicitly says it "Does not detect sensitive content or prove the chosen regions cover it," which steers an agent away from expecting auto-detection. No sibling is named as an alternative, but none exists, so guidance is effectively complete for the context.

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

abox_image_resizeResize a local imageA

Resize a still JPEG, PNG, or WebP with the existing abox.tools geometry and codecs. Specify width, height, or both. Contain fits the whole image; cover crops centrally. Upscaling is disabled by default. Writes and verifies a new local image; re-encoding may remove metadata.

NameRequiredDescriptionDefault
fitNocontain
widthNo
formatNokeep
heightNo
qualityNo
backgroundNo#ffffff
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
allow_upscaleNo

TDQS

A4/5.0
Behavior4/5

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

Annotations only declare the generic write profile (readOnly=false, destructive=false, idempotent=false, openWorld=false); the description adds real value by disclosing that a new local file is written and verified, that re-encoding may strip metadata, and that upscaling is disabled by default. It does not say whether an existing output_path is overwritten.

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?

Four short sentences, front-loaded with the operation and formats, then the sizing rules, then behavioral notes. The phrase 'existing abox.tools geometry and codecs' is mild filler but arguably signals consistency with sibling tools.

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

Completeness3/5

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

With no output schema, low schema coverage, and a mutation tool, the description should carry more: overwrite behavior on output_path, what 'verifies' means, and the role of quality/background when re-encoding are all unstated. The core geometry semantics are covered, so it is adequate but incomplete.

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 only 22% of 9 parameters, and the description compensates for some: the meaning of fit values ('contain' fits the whole image, 'cover' crops centrally) and the default of allow_upscale. It says nothing about format, quality, or background, leaving a third of the parameters undocumented in both places.

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?

States a specific verb and resource ('Resize a still JPEG, PNG, or WebP') plus the scope of supported formats, which cleanly separates it from siblings such as abox_image_convert and abox_image_compress. An agent can identify the operation without opening 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?

Gives concrete invocation conditions: specify width, height, or both; contain fits the whole image, cover crops centrally; upscaling is off by default. It stops short of naming alternatives (e.g. use abox_image_convert to change format only) or stating when not to use it.

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

abox_image_stackStack local imagesA

Combine 2 to 8 equal-size opaque still JPEG, PNG or WebP images using average, median, sigma-clipped, brightest, darkest or additive stacking from the website engine. No alignment, rescaling, RAW decoding or focus stacking in this version. Writes and verifies a new PNG/JPEG. Images must already line up; requires a local browser.

NameRequiredDescriptionDefault
gainNo
kappaNo
formatNopng
methodNoaverage
qualityNo
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4/5.0
Behavior4/5

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

Annotations cover the safety profile (not read-only, not destructive), and the description adds real operational context beyond them: it writes and verifies an output file, needs a local browser, and refuses non-local paths. It does not say what happens if output_path already exists (overwrite vs. fail), which is the main remaining behavioral gap.

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?

Three tightly packed sentences with the capability front-loaded and limitations trailing. The clipped enumeration style ('No alignment, rescaling, RAW decoding or focus stacking') is efficient rather than wasteful.

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

Completeness3/5

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

For a 7-parameter write tool with no output schema, the description covers inputs, methods, constraints and the fact an output file is written and verified. It falls short on the semantics of gain/kappa/quality and on overwrite/conflict behavior, which an agent needs before committing a write.

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 description coverage is only 14%, so the description must carry weight. It does map the method names (average, median, sigma-clipped, brightest, darkest, additive) onto the enum values, but gain, kappa and quality are never explained, leaving three of seven parameters undocumented anywhere.

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?

States a specific verb (combine) and resource (2-8 equal-size opaque still images) with the full method list enumerated. It also carves out scope boundaries explicitly ('No alignment, rescaling, RAW decoding or focus stacking'), which no sibling tool covers.

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?

Clear preconditions are given: images must already line up, must be equal-size, opaque and still, and a local browser is required. The negation list implicitly routes alignment/rescaling/RAW/focus-stacking work elsewhere, though no sibling is named directly.

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

abox_images_to_pdfCreate a PDF from local imagesA

Place still JPEG, PNG or WebP images into a new PDF in the requested order, one per page. Supports paper sizes, margins and lossless or JPEG encoding with local browser codecs. Reopens and verifies page counts and dimensions. Keep mode can embed original JPEG metadata.

NameRequiredDescriptionDefault
dpiNo
fitNocontain
qualityNo
max_sideNo
margin_mmNo
page_sizeNoa4
backgroundNo#ffffff
image_modeNokeep
input_pathsYes
orientationNoauto
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already establish the safety profile: not read-only, not open-world, not idempotent, not destructive. The description adds useful behavioral context beyond that, including verification by reopening the PDF and checking page counts/dimensions, local codec use, and metadata retention in keep mode.

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

Conciseness5/5

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

The description is four efficiently written sentences, front-loads the core action and output, then layers on supported formats and verification behavior. There is no filler or repetition.

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

Completeness3/5

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

Given 11 parameters, low schema coverage, and no output schema, the description is only partially complete. It covers the core workflow and verification but omits important operational details like overwrite behavior, limits on input volumes, and semantics for several non-enum parameters.

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 description coverage is only 9%, so the description needs to compensate, and it does for some parameters: input order, paper sizes, margins, lossless/JPEG encoding, and keep-mode metadata. However, many parameters such as dpi, fit, quality, max_side, background, and orientation remain unexplained, leaving clear gaps.

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

Purpose4/5

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

The description states a specific verb and resource: placing JPEG, PNG, or WebP images into a new PDF, one per page, in requested order. That clearly distinguishes it from PDF merge/split and image conversion siblings, though it does not explicitly name an alternative for related tasks.

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

Usage Guidelines2/5

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

The description explains what the tool does but gives no explicit guidance on when to use it versus siblings like abox_images_to_video, abox_pdf_merge, or abox_image_convert. Any usage context is implied by the purpose rather than stated.

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

abox_images_to_videoMake a local video from imagesA

Encode ordered still JPEG, PNG or WebP images into a silent H.264 MP4 with size, timing, fit and quality controls. Verifies all output frames, dimensions and timing. Limited to 60 seconds, 1800 frames and 1080p pixels. Requires a local browser with a supported native H.264 encoder; no external encoder download.

NameRequiredDescriptionDefault
fitNocontain
fpsNo
widthNo
heightNo
qualityNomedium
backgroundNo#ffffff
duration_msNo
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
durations_msNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish that this is a non-read-only, non-destructive, non-idempotent closed-world operation. The description adds useful behavior beyond that: silent H.264 output, output verification, frame/dimension/timing limits, and no external encoder download. It stops short of stating overwrite behavior for output_path or error recovery details.

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

Conciseness5/5

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

Front-loads the core operation, then adds constraints and environment requirements in compact sentences. Every sentence contributes useful selection or invocation context with no repetition.

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

Completeness3/5

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

Given 10 parameters, low schema coverage, and no output schema, the description covers the high-level capability, environment, and hard limits well. However, it leaves significant invocation details undocumented, especially individual parameter meanings and output overwrite behavior.

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

Parameters2/5

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

Schema description coverage is only 10%, so the description must compensate, but it only broadly mentions size, timing, fit, and quality controls. It does not explain key parameters such as input_paths limits, durations_ms versus duration_ms precedence, background, fit enum semantics, or quality levels.

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?

States a specific verb and resource: encode ordered still JPEG/PNG/WebP images into a silent H.264 MP4. This is precise enough to distinguish it from sibling media tools such as gif_create, gif_to_mp4, video_join, and image_layout.

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?

Provides clear usage context through hard limits (60 seconds, 1800 frames, 1080p) and an environment requirement (local browser with native H.264 encoder). It does not explicitly compare with alternatives, but the use case is strongly implied.

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

abox_image_to_icoCreate a local ICO iconA

Convert a still JPEG, PNG or WebP into one ICO containing requested icon sizes. Uses the existing abox.tools image rendering and ICO encoder, with padding, crop or stretch and transparent or solid background. Writes a new ICO and verifies its directory and image entries.

NameRequiredDescriptionDefault
fitNopad
sizesNo
storageNoauto
backgroundNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare a non-readOnly, non-destructive, closed-world mutation, and the description usefully adds that it writes a new ICO and then verifies its directory and image entries, plus that it reuses abox.tools' renderer/encoder. It does not say what happens if output_path already exists (overwrite?), what the return payload contains, or any limits, which is the main behavioral gap for a file-writing tool.

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?

Three dense sentences with the conversion target stated first, followed by mechanics and the write/verify step. No filler, though the middle sentence packs three distinct behaviors into one long clause and could be split for scannability.

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

Completeness3/5

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

For a 6-parameter file-writing tool with no output schema, the description covers source formats, fit modes, background and the write-and-verify outcome. It leaves the storage encoding parameter and the overwrite behavior of an existing output_path unexplained, which an agent needs before calling it safely.

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 description coverage is 33%, so the description has to compensate and it partly does: it maps 'pad, crop or stretch' to fit, 'requested icon sizes' to sizes, and 'transparent or solid background' to background. It never mentions the storage option (auto/png/bmp), and it paraphrases enum values without explaining what pad versus crop actually does visually.

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 opening sentence gives a specific verb (Convert), a precise input class (still JPEG, PNG or WebP) and a precise output (one ICO with requested icon sizes). No sibling produces ICO output, and the format restrictions implicitly separate it from abox_image_convert and abox_svg_to_image.

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

Usage Guidelines3/5

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

Usage is implied: an agent can infer this is the tool for turning a raster image into a multi-size icon. There is no explicit when-to-use/when-not guidance, no mention of the alternative siblings (image_convert, svg_to_image), and no prerequisites such as the source needing to be a local still image rather than animated GIF.

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

abox_image_traceTrace a local image into SVGA

Trace a still JPEG, PNG or WebP into a single-color SVG path using the website mask, contour and curve engines. Best suited to logos and line art; this is a lossy shape interpretation. Supports automatic or explicit threshold, inversion and detail. Refuses overly complex traces. Writes and verifies a static path-only SVG; requires a local browser.

NameRequiredDescriptionDefault
fillNo#000000
detailNoauto
invertNo
min_areaNo
thresholdNootsu
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
corner_angleNo

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the annotations, the description discloses that the trace is a lossy shape interpretation, that complex traces are refused, that it writes and verifies a static path-only SVG, and that it requires a local browser. It does not discuss overwrite behavior for an existing output_path or expected runtime, so it stops short of full behavioral coverage.

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

Conciseness5/5

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

The description is four compact sentences, front-loads the core action and output, then adds suitability and constraints. There is no repetition or filler.

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

Completeness4/5

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

For an eight-parameter local file conversion tool with no output schema, the description gives a clear output artifact and key behavioral constraints. It is not fully complete because it omits semantics for min_area and corner_angle and does not state what happens if output_path already exists.

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?

The description adds meaning for several parameters by mentioning automatic or explicit threshold, inversion, detail, and single-color output. However, schema description coverage is only 25% and the description does not explain fill format, min_area, or corner_angle, leaving several parameters underspecified.

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 states a precise verb and resource: trace a still JPEG, PNG or WebP into a single-color SVG path. It names the three raster formats and the output artifact, which clearly separates it from siblings such as abox_svg_to_image and abox_image_convert.

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?

It says the tool is 'best suited to logos and line art' and refuses overly complex traces, giving real suitability guidance. It does not explicitly name an alternative tool for photographic or non-line-art inputs, so a sibling-level routing rule is missing.

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

abox_json_formatFormat a local JSON fileA

Pretty-print or minify UTF-8 JSON using the existing abox.tools parser. Preserves numeric spellings, large integers, duplicate keys, escaped string tokens and object key order. Optional natural key sorting. Writes a new JSON file with a final newline and verifies tokens and structure. Input up to 8 MiB and 256 nesting levels; output up to 32 MiB. File contents are not returned.

NameRequiredDescriptionDefault
indentNo2
minifyNo
sort_keysNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.2/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: it writes a new file, appends a final newline, verifies tokens and structure post-write, and states hard limits (8 MiB input, 256 nesting levels, 32 MiB output). It also discloses preservation guarantees (numeric spellings, large integers, duplicate keys, key order) and that file contents are not returned — none of which the annotations convey.

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?

Dense but front-loaded, with the core action in the first clause and limits/behavior following. Minor filler in the implementation reference ('using the existing abox.tools parser'), but nearly every sentence carries useful information.

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?

With no output schema, the description supplies exactly what an agent needs: that output goes to a new file rather than the response, the size/nesting limits, and post-write verification. Nothing material is missing for correct invocation.

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 only 40%, so the description must compensate. It clarifies sort_keys as 'natural key sorting' and explains that minify is an alternative mode, but indent's allowed values (2/4/tab) are left entirely to the enum and the interaction between minify and indent is ambiguous. Partial compensation.

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?

States a specific verb pair (pretty-print/minify) and resource (UTF-8 JSON file), and the format-only nature distinguishes it from conversion siblings like abox_yaml_json and abox_xml_json. An agent can tell what it does without opening 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 Guidelines3/5

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

Usage is implied by the operation (format an existing JSON file), but there is no explicit when-to-use/when-not guidance and no mention of alternatives such as the conversion tools. The input_path/output_path constraints in the schema implicitly scope it to local files only.

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

abox_live_statusCheck local live-session statusB
Read-onlyIdempotent

Return only session types, safe state, peer counts, capture kind, expiry and saved-file counts. Does not return pairing codes, invitations, received contents, device labels or media. Sessions belong to this adapter process.

NameRequiredDescriptionDefault
session_idNo

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is clear. The description adds valuable behavioral context beyond annotations by explicitly listing what is NOT returned (pairing codes, invitations, received contents, device labels, media) and clarifying the scope is this adapter process. It does not describe error behavior or whether one or all sessions are returned.

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 three compact sentences with no filler. It front-loads the return-content summary and uses the remaining sentences for exclusions and process scope. It could be slightly more front-loaded around the action rather than the return payload.

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

Completeness3/5

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

With no output schema, the description appropriately explains returned fields and exclusions, which is essential. Annotations cover the safety profile well. However, the lone parameter's behavior is left entirely undocumented, leaving a clear completeness gap for an agent deciding whether/how to pass session_id.

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

Parameters2/5

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

There is one optional parameter (session_id) with UUID format, but schema description coverage is 0%. The description never mentions session_id or explains whether it filters to a single session or is ignored. With low schema coverage, the description should compensate, and it does not.

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

Purpose4/5

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

The description specifies the exact return payload of a status check (session types, safe state, peer counts, capture kind, expiry, saved-file counts). Combined with the title, an agent can identify this as a read-only status tool. It is clear but does not explicitly name a sibling alternative or give a direct action verb like 'check'.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and no explicit alternatives among siblings like abox_live_stop or the various session tools. The statement 'Sessions belong to this adapter process' is scoping context, not usage guidance. Purpose is implied only by the tool name and title.

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

abox_live_stopClose a local live-session windowB

Close the selected companion browser, release capture and peer connections, and remove incomplete receive files. Completed local saves remain. Closing an already closed session is harmless.

NameRequiredDescriptionDefault
session_idYes

TDQS

B3.4/5.0
Behavior4/5

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

Annotations only give generic flags; the description adds real substance by disclosing exactly what is torn down, that completed local saves survive, and that repeat-close is harmless. The 'harmless when already closed' claim sits in mild tension with idempotentHint=false, but it is a nuance rather than a reversal; permission requirements remain unstated.

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?

Three short sentences, each carrying distinct information, with the destructive-effects disclosure front-loaded. No filler or repetition; only the missing parameter sentence keeps it from being ideal.

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

Completeness3/5

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

Effects and cleanup semantics are well covered, but for a mutation tool with no output schema the agent gets no success/failure signal and no documentation of the one required argument. Adequate but with clear gaps.

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

Parameters2/5

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

There is a single required parameter at 0% schema description coverage, and the description never mentions it at all. 'The selected companion browser' hints at a session reference but gives no format, no source for obtaining the id, and no indication of what an invalid id does.

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

Purpose4/5

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

Names a concrete verb ('Close') and enumerates the specific resources torn down: companion browser, capture, peer connections, incomplete receive files. An agent can tell this is a teardown of a live session, though it never explicitly maps the action to the 'session' concept in the tool name or to sibling session tools like abox_live_status.

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

Usage Guidelines3/5

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

Usage is only implied: you call it to end a live session. There is no explicit when-to-use/when-not, no mention of checking abox_live_status first, and no guidance on obtaining the session id or whether this should follow a failure.

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

abox_markdown_htmlRender local Markdown to HTMLA

Render the website small Markdown dialect into a new standalone HTML file with a restrictive CSP. Verifies passive tag nesting and projected source text. Supports simple headings, flat lists, quotes, code, emphasis and safe-scheme links; no raw HTML, image rendering or automatic requests. Links remain clickable in the saved file and are never opened by the adapter. Requires no browser.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavior: it writes a new standalone HTML file, applies a restrictive CSP, verifies tag nesting and source text, keeps links clickable but never opens them, and makes no network requests. This is unusually rich behavioral context for a write-oriented local tool.

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

Conciseness5/5

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

The description is front-loaded with the core render operation and then adds security, supported syntax, and link behavior without filler. Every sentence contributes useful scope or behavior information.

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

Completeness4/5

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

For a two-path local file conversion tool with full schema coverage and annotations, the description covers supported syntax, security posture, link handling, and browser requirements well. It does not mention overwrite behavior for an existing output_path or error/return behavior, which leaves a minor gap.

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%, so both required path parameters are fully documented by the schema. The description adds only the implication that output_path receives a new standalone HTML file and does not explain path handling beyond what the schema already states.

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 states a specific verb and resource: render a Markdown dialect into a new standalone HTML file. It also scopes the output with a restrictive CSP and distinguishes the tool from browser-based rendering and raw HTML handling.

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?

It gives clear usage context by listing supported Markdown features and explicit exclusions such as raw HTML, image rendering, automatic requests, and browser use. It does not name a specific alternative sibling tool, so it falls short of full when-to-use/when-not guidance.

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

abox_password_generateGenerate passwords into a local fileA

Generate cryptographically random passwords or EFF-wordlist passphrases with the existing website engine. Writes secrets only to a new local .txt file; never returns secrets, secret hashes or samples. Defaults to one 24-character password. Optional bounded local JSON configuration selects supported settings. The output is plaintext; this is not a password vault.

NameRequiredDescriptionDefault
config_pathNoOptional local UTF-8 JSON object. Common fields: mode=password or passphrase, count, password length, or passphrase words. Call capabilities for all supported configuration fields. Never place generated secrets in arguments.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.5/5.0
Behavior4/5

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

Adds substantial context beyond the annotations: secrets are never returned, never hashed or sampled, and the output file is plaintext rather than a vault. This resolves the natural question of what happens to the generated secret. It stops short of stating what happens if output_path already exists (overwrite vs. refusal), which matters given idempotentHint=false.

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

Conciseness5/5

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

Four tight sentences, purpose front-loaded, with the non-obvious constraint (secrets never returned) placed early. Every sentence adds information an agent needs.

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?

No output schema exists, and the description explicitly explains the return behavior (writes to file, never returns secrets), which is the key gap such a tool would otherwise have. For a two-parameter tool with full schema coverage, nothing material is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3, and the description adds real value on top: the 24-character single-password default is not in the schema, and 'Optional bounded local JSON configuration' characterizes config_path's scope better than the schema's field list. It also enforces a usage constraint (never place secrets in arguments).

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?

Names a specific verb and resource ('Generate cryptographically random passwords or EFF-wordlist passphrases') and states the delivery mechanism ('Writes secrets only to a new local .txt file'). No sibling tool does anything similar, and the definition makes the distinction obvious without opening 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?

Gives concrete operating context: defaults to one 24-character password, optional bounded local JSON config selects settings, and directs the agent to call capabilities for the full list of configuration fields. It lacks explicit when-not guidance, but the tool has no true alternative among the file-processing siblings.

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

abox_pdf_compressCompress a local PDFA

Recompress supported PDF images and rewrite structure using the existing abox.tools engine. Presets trade image resolution and quality for size. Keeps page content streams and verifies page order and geometry; image pixels can change. Reports actual savings and may produce a larger file. No byte-target search. Writes a new unencrypted PDF; signatures become invalid.

NameRequiredDescriptionDefault
dpiNoOptional resolution override. Zero disables image downsampling.
presetNoscreen
qualityNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
strip_metadataNo

TDQS

A4/5.0
Behavior5/5

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

Discloses behavior beyond the annotations: it keeps content streams, verifies page order/geometry, pixels may change, output can be larger, and critically that signatures become invalid and the output is an unencrypted new file. That last point matters because destructiveHint=false could otherwise suggest no meaningful side effects.

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

Conciseness5/5

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

Six short statements, each carrying a distinct fact, with the core operation and the most consequential warning (signature invalidation) appropriately placed. No restatement of the name or schema fields.

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

Completeness4/5

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

No output schema exists, and the description does mention that it reports actual savings, so return behavior is partially covered. For a 6-parameter local-file mutation tool the description is nearly complete, though the strip_metadata and preset/dpi interaction remain unaddressed.

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 50%; the description adds meaning for presets and quality ('quality for size') and implicitly dpi ('image resolution'). It says nothing about strip_metadata or how preset and dpi interact, so the undocumented half remains unexplained.

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

Purpose4/5

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

States a specific verb+resource ('Recompress supported PDF images and rewrite structure') and scopes it to local files via the title. It implicitly separates itself from abox_image_compress by operating on PDF structure, but never names an alternative explicitly.

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

Usage Guidelines3/5

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

It gives useful framing ('Presets trade image resolution and quality for size', 'No byte-target search'), which tells the agent what the tool will not do, but there is no explicit when-to-use versus abox_image_compress or abox_pdf_split guidance.

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

abox_pdf_mergeMerge local PDFsA

Combine 2 to 32 unencrypted local PDFs in input order into a new PDF. Total inputs are limited to 128 MiB and 5000 pages. Reopens the output and verifies its page count. Document tags, labels, attachments and metadata may be omitted; signatures become invalid.

NameRequiredDescriptionDefault
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_bookmarksNo

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate this is a local, non-read-only, non-idempotent operation. The description adds useful behavior beyond that: input-order preservation, input limits, output verification, and caveats that metadata/attachments may be omitted and signatures invalidated. It still omits overwrite/error behavior for output_path.

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

Conciseness5/5

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

Three sentences, front-loaded with the core action and constraints, then behavioral caveats. Every sentence adds useful information with no filler.

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

Completeness3/5

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

The description is strong on limits and caveats, and annotations cover safety, but it does not explain keep_bookmarks, overwrite behavior for output_path, or what is returned after verification. For a 3-parameter mutation tool with no output schema, that leaves notable gaps.

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

Parameters2/5

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

Schema coverage is only 33%, and keep_bookmarks has no schema description and is never mentioned in the description. The description clarifies input ordering and aggregate limits, but it fails to explain a full third of the parameters, leaving a material gap.

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 uses a specific verb and resource: 'Combine ... PDFs ... into a new PDF.' It also scopes the operation to 'unencrypted local PDFs in input order,' which clearly distinguishes it from split, select, and images-to-PDF siblings.

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?

It provides clear applicability constraints: 2 to 32 unencrypted local PDFs, with size and page limits. It does not explicitly name alternative siblings or when-not conditions beyond rejecting encrypted/non-local inputs, so it falls short of full routing guidance.

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

abox_pdf_protectProtect a local PDFA

Encrypt an unencrypted or blank-open-password PDF with revision 6 AES-256 (default) or revision 4 AES-128, using passwords read from local UTF-8 files. Optional print/copy/change permission flags are advisory and depend on the viewer. Reopens and decrypts the new PDF to verify its reachable object graph and page count. Passwords never enter tool arguments or results. No password guessing.

NameRequiredDescriptionDefault
revisionNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
restrict_copyNo
restrict_printNo
restrict_changeNo
open_password_fileNoAbsolute path to an exact UTF-8 password file; contents, BOM and final newline are not trimmed. Never put the password itself into arguments.
owner_password_fileNoAbsolute path to an exact UTF-8 password file; contents, BOM and final newline are not trimmed. Never put the password itself into arguments.

TDQS

A4.7/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: passwords are read from files and never appear in arguments/results, permission flags are advisory and viewer-dependent, and the output is reopened/decrypted for verification. This is exactly the operational context an agent needs for a non-readonly, non-idempotent tool.

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

Conciseness5/5

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

Front-loads the core operation, then adds only high-value constraints about passwords, permissions, and verification. Dense but every sentence earns its place.

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

Completeness4/5

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

Covers the critical encryption, password handling, permission, and verification behavior for a complex tool with no output schema. It could still state what a successful call returns or how existing output files are handled, but the gaps are minor.

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

Parameters5/5

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

With only 50% schema description coverage, the description compensates by explaining revision 6 AES-256 vs revision 4 AES-128, the password-file indirection, and the advisory nature of the print/copy/change flags. The path parameters are already well described in the schema.

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?

States a specific operation (encrypt) on a specific resource (PDF), with supported revisions and explicit scope (unencrypted or blank-open-password PDFs). This clearly distinguishes it from encryption-adjacent siblings such as abox_pdf_unlock even though no sibling is named.

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?

Gives clear usage context by limiting input to unencrypted or blank-open-password PDFs and ruling out password guessing. It does not explicitly name alternatives such as abox_pdf_unlock or say when not to use it, so it falls short of full when/when-not guidance.

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

abox_pdf_redactPermanently redact local PDF regionsA

Render every admitted unencrypted PDF page locally, replace explicitly selected rectangles with opaque black pixels, and write a fresh lossless image-only PDF. Local JSON supplies exact displayed page geometry and top-left point coordinates. Verifies every saved RGB sample, black masks and the new object graph; no source text, attachments, links, annotations or metadata objects are copied. All pages are flattened, searchable text and signatures are lost, and size can increase. Does not identify sensitive areas or prove selected coverage. Requires a local browser.

NameRequiredDescriptionDefault
dpiNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
regions_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.1/5.0
Behavior5/5

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

Discloses behavior well beyond the annotations: no source text, attachments, links, annotations or metadata objects are copied; all pages are flattened; signatures are lost; output size can increase; RGB samples and object graph are verified. These are exactly the consequences an agent needs before invoking an irreversible-content operation.

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?

Front-loaded with the core action, followed by consequences and constraints; nearly every clause carries information. It is dense to the point of being a single run-on, but no sentence is padding.

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?

No output schema exists, yet the description covers what is produced (fresh image-only PDF, verified samples) and what is lost, which is the critical return-value context. Given only four parameters and a non-idempotent mutation, an agent has what it needs to call this correctly.

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

Parameters4/5

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

Schema coverage is 75% and the paths are already documented as absolute-local-only, but the description adds real meaning for regions_path ('Local JSON supplies exact displayed page geometry and top-left point coordinates') that the schema does not convey. The dpi parameter is left unaddressed in both places, so it is not a complete 5.

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

Purpose4/5

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

States a specific verb and resource ('replace explicitly selected rectangles with opaque black pixels, and write a fresh lossless image-only PDF'), which is far more precise than the title alone. It is distinguishable from siblings like abox_pdf_compress or abox_image_redact by being PDF-region-specific, but it never names those alternatives for contrast.

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

Usage Guidelines3/5

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

Gives useful preconditions ('Requires a local browser', 'admitted unencrypted PDF page', local JSON geometry) and boundaries ('Does not identify sensitive areas or prove selected coverage'), which implies when it is appropriate. However, it never states when to pick this over abox_image_redact or abox_pdf_select, nor what to do if the PDF is encrypted (presumably abox_pdf_unlock).

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

abox_pdf_rotateRotate local PDF pagesA

Rotate selected pages clockwise by 90, 180 or 270 degrees while retaining every page in its original order. Reopens the new PDF and verifies page rotations and geometry. Document-level structure may be omitted; signatures become invalid.

NameRequiredDescriptionDefault
pagesNoAll pages, or a 1-based selection such as 1,3-5. The entire document is retained in its original order.all
degreesYes
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_bookmarksNo

TDQS

A3.6/5.0
Behavior4/5

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

Goes beyond the annotations by disclosing post-write self-verification ('reopens the new PDF and verifies page rotations and geometry'), possible loss of document-level structure, and signature invalidation. With destructiveHint=false this warning is valuable extra context; it stops short of saying whether output_path may overwrite an existing file.

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

Conciseness5/5

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

Three short sentences, front-loaded with the operation and its angle constraint, then the verification behavior, then the risk caveat. Nothing is redundant.

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

Completeness4/5

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

With no output schema, the description carries the burden of explaining the result, and it does ('reopens the new PDF and verifies...'). Only the overwrite semantics of output_path and the meaning of keep_bookmarks remain unstated.

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 60%: pages, input_path and output_path are already documented in the schema, but degrees and keep_bookmarks are not. The description adds the valid degrees values (90/180/270) and hints at keep_bookmarks via 'document-level structure may be omitted', but never names the flag explicitly.

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

Purpose4/5

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

The description names a specific verb and resource ('Rotate selected pages') and constrains it to a local PDF via the title, which separates it from abox_video_rotate and the other pdf_* siblings. It is clear what the tool does, though sibling differentiation is only implicit through the resource noun rather than stated.

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

Usage Guidelines2/5

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

No sentence says when to reach for this tool versus another (e.g. abox_pdf_select to extract pages first, or that input/output must be local files). The only guidance-adjacent content is the signature-invalidation caveat, which is a warning, not a use condition.

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

abox_pdf_selectSelect and reorder local PDF pagesA

Extract, reorder or duplicate pages from an unencrypted local PDF into one new PDF. Page terms retain their order and duplicates; ranges expand ascending. Example: 3,1-2,3 produces four pages. Reopens the output and verifies its page count. Document-level structure may be omitted; signatures become invalid.

NameRequiredDescriptionDefault
pagesYes1-based page terms in output order, such as 3,1-2,3. Ranges expand ascending; repeated terms retain duplicates.
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_bookmarksNo

TDQS

A3.7/5.0
Behavior4/5

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

Annotations establish the safety profile (readOnly false, destructive false, idempotent false), and the description adds valuable non-structured context: the source must be unencrypted, the output page count is re-verified after writing, document-level structure may be omitted, and signatures become invalid. The signature-invalidation and verification notes are exactly the kind of behavioral caveat annotations cannot express.

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 core operation and the distinguishing ordering/duplication rule are front-loaded, with the example and signature caveat following efficiently. Dense but every sentence carries information; no filler.

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

Completeness4/5

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

With no output schema, the description does its part by stating the result is a new PDF and that its page count is verified. The main remaining gap is the undocumented keep_bookmarks parameter, but overall an agent has enough to invoke the tool correctly.

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 75%, and the description reinforces the 'pages' semantics ('terms retain order and duplicates; ranges expand ascending') with a concrete example. However, it never mentions the fourth parameter, keep_bookmarks, which is the uncovered 25% and carries a default the agent should understand.

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

Purpose4/5

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

The description opens with a specific verb+resource combination ('Extract, reorder or duplicate pages from an unencrypted local PDF into one new PDF'), making the operation unmistakable. It is clear but does not name a sibling like abox_pdf_split or abox_pdf_merge to differentiate when this tool should be chosen over them.

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

Usage Guidelines3/5

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

The description implies the usage context (extracting/reordering pages from an unencrypted local PDF) and states a precondition that the source must be unencrypted, but it gives no explicit when-to-use guidance versus alternatives. An agent must infer that split/merge siblings are distinct scenarios.

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

abox_pdf_splitSplit a local PDFA

Split an unencrypted local PDF into one file per page, batches, or explicit range groups (1-based). Writes a new directory and reopens every PDF to count pages. Preserves page content but omits document tags, labels, attachments, metadata and unsupported actions; signatures become invalid.

NameRequiredDescriptionDefault
modeNoeach
rangesNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_dirYesAbsolute local filesystem path. URLs and network shares are refused.
keep_bookmarksNo
pages_per_fileNo

TDQS

A4.2/5.0
Behavior5/5

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

Goes well past what the annotations declare: it names the write target (a new directory), discloses a hidden cost (reopening every output PDF to count pages), and enumerates losses (tags, labels, attachments, metadata, unsupported actions) plus signature invalidation. 'Writes a new directory' is consistent with destructiveHint=false since no existing data is claimed to be removed, so no contradiction arises.

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

Conciseness5/5

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

Three sentences with the operation, the output shape, and the side effects ordered by importance; no filler and no restatement of the title. The dense phrasing still resolves into distinct facts.

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

Completeness4/5

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

For a 6-parameter mutation tool with no output schema and only partial schema documentation, the description covers preconditions, side effects, and data loss adequately. It stops short of describing the created directory's structure/naming or error behavior, and leaves two optional parameters unaddressed.

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 description coverage is only 33%, and the description compensates partially by explaining the mode enum semantics (each page / batches / explicit ranges) and that ranges are 1-based, which the schema does not say. But keep_bookmarks and pages_per_file are left entirely unexplained, and the blanket 'omits metadata' sits awkwardly against a keep_bookmarks default of true, leaving the agent to guess their interaction.

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?

States a specific verb (split) against a specific resource (an unencrypted local PDF) and enumerates the three output shapes (per page, batches, range groups). The scope 'local, unencrypted' plus 'writes a new directory' cleanly separates it from the sibling image/EXIF utilities and from any in-place PDF operation.

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

Usage Guidelines3/5

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

The constraints 'unencrypted' and 'local' function as implicit preconditions, telling the agent when this tool will refuse work. However, there is no explicit when-to-use guidance, no statement about when to prefer batches over ranges, and no mention of alternatives; the agent must infer invocation conditions from the description.

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

abox_pdf_to_csvExtract local PDF tables to CSVA

Infer selectable-text tables in an unencrypted local PDF. Writes UTF-8 BOM CSV, comma delimiter, CRLF, blank rows between tables. No OCR. Dates and amounts may be normalized; ambiguous auto dates use day/month/year. Formula-like text is escaped by default. Review the CSV; structural verification does not prove accuracy. Conservative filter preflight accepts unfiltered/Flate without predictors and can also refuse blocked PDF names printed in text.

NameRequiredDescriptionDefault
pagesNoAll pages, or an ascending unique 1-based selection such as 1,3-5.all
date_orderNoauto
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
table_indexNoOptional 1-based detected table; omitted exports all tables.
include_headersNo
spreadsheet_safeNo

TDQS

A4/5.0
Behavior4/5

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

Well beyond the annotations (which only say it isn't read-only and isn't destructive): the description discloses output encoding (UTF-8 BOM, comma, CRLF, blank rows between tables), date normalization rules for ambiguous auto dates, formula escaping, and a conservative filter preflight with refusal conditions. Gap: it never says whether an existing output_path is overwritten, and 'blocked PDF names printed in text' is opaque jargon.

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?

Front-loaded with the core verb and resource, and every clause carries information — output format, normalization, escaping, accuracy caveat. Density is high but the sentence fragments and the final preflight sentence read as compressed internal jargon rather than agent-facing guidance.

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

Completeness4/5

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

With 7 parameters, 57% schema coverage, and no output schema, the description carries the output-format burden and does so thoroughly (delimiter, encoding, line endings, multi-table layout). Missing pieces are error/overwrite behavior and any indication of how many tables or what a failure looks like.

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

Parameters4/5

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

Schema coverage is only 57%, and the description compensates for the undocumented ones: date_order's 'auto' behavior is explained (ambiguous dates fall back to day/month/year) and spreadsheet_safe is explained via formula-like text escaping. pages, table_index, and include_headers still rely entirely on the schema, leaving partial coverage.

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

Purpose4/5

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

Opens with a specific verb and resource: infer selectable-text tables from an unencrypted local PDF and write them as CSV. It's immediately distinguishable from siblings like abox_pdf_split or abox_pdf_merge, though no sibling is named explicitly and the closest alternative (abox_receipt_extract / OCR-style extraction) is never referenced.

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?

Clear applicability conditions: unencrypted, local, selectable-text PDFs only, with 'No OCR' as an explicit exclusion, and 'Review the CSV; structural verification does not prove accuracy' telling the agent not to trust the output blindly. It stops short of naming an alternative tool for scanned/image PDFs.

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

abox_pdf_unlockUnlock a local PDFA

Use a supplied local UTF-8 password file or a blank password to write a new unencrypted PDF with the existing website decryptor. Supports the source engine encryption revisions and verifies the reachable object graph after rewriting. Does not guess passwords. Standard metadata removal defaults to true; visible content and embedded metadata can remain. Signatures become invalid.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
password_fileNoAbsolute path to an exact UTF-8 password file; contents, BOM and final newline are not trimmed. Never put the password itself into arguments.
remove_metadataNo

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only say readOnly=false, destructive=false, idempotent=false. The description goes well beyond that: metadata removal defaults to true, visible content and embedded metadata may remain, signatures become invalid, and the object graph is verified after rewriting. Those are concrete consequences an agent could not infer from the structured fields.

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?

Six short sentences, front-loaded with the core action and followed by constraints in decreasing priority. "Supports the source engine encryption revisions" is the one line that borders on opaque jargon, but nothing is redundant.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers the write target, the password input model, and side effects such as metadata and signature invalidation. It does not say what the call returns (the written path? the verification verdict?), which is the remaining gap.

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

Parameters4/5

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

Schema coverage is 75%, and the description fills the main gap by explaining that "Standard metadata removal defaults to true" — the only parameter without a schema description. It also clarifies password semantics ("Does not guess passwords") in a way the schema does not, though it adds nothing about path handling beyond the schema.

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

Purpose4/5

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

The description states a specific verb and resource: write a new unencrypted PDF from a password-protected source using a password file or blank password. It is distinct from what any sibling tool does, though it never names an alternative (e.g. abox_pdf_protect) to sharpen the boundary.

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?

"Use a supplied local UTF-8 password file or a blank password" plus "Does not guess passwords" defines the operating context and an explicit exclusion. It stops short of saying what to do when the password is unknown or when to prefer a different tool.

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

abox_pdf_watermarkWatermark a local PDFA

Overlay one line of rasterized text on all pages or the first page of a local unencrypted PDF. Supports centered diagonal or horizontal stamps and tiled repeats. Uses installed browser fonts. Writes a new PDF and verifies stamp placement and page geometry. A watermark does not redact content or prevent editing; signatures become invalid.

NameRequiredDescriptionDefault
sizeNomedium
textYesOne line of watermark text, at most 200 characters.
colorNogrey
tiledNo
opacityNo
diagonalNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
first_page_onlyNo

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare non-readOnly, non-destructive, non-idempotent, closed-world. The description adds real value beyond that: it writes a new PDF (input preserved), requires an unencrypted/local file, verifies stamp placement and page geometry, and warns signatures become invalid. It stops short of describing overwrite behavior on output_path or failure modes.

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

Conciseness5/5

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

Three sentences, front-loaded purpose, then capabilities, then writes/verification, then the disambiguation caveat. No filler; every clause carries actionable meaning.

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

Completeness4/5

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

No output schema exists, and the description compensates by stating a new PDF is written and placement is verified. Given 9 params and weak schema coverage, the missing semantics for size/color/opacity and output-overwrite behavior are the only gaps; callable information is largely present.

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 only 33%, but the description cover the distinctive parameters: text (one line, rasterized), first_page_only ('or the first page'), diagonal ('centered diagonal or horizontal'), and tiled ('tiled repeats'). It says nothing about size, color, or opacity, which the schema leaves undocumented too, so partial compensation.

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?

States a specific verb and resource ('Overlay one line of rasterized text on ... a local unencrypted PDF') plus scope options (all pages vs first page, diagonal vs horizontal, tiled). It is clearly distinguishable from siblings like abox_image_redact or abox_pdf_protect because it explicitly denies redaction/editing prevention.

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 closing sentence 'A watermark does not redact content or prevent editing' gives an implicit when-not and routes the agent toward redact/protect tools. It also implies a precondition (unencrypted PDF, local paths only) but never names a sibling directly or states when a watermark is the right choice over, say, abox_image_redact.

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

abox_qr_generateCreate a local QR codeA

Read exact UTF-8 payload text from a local file and generate a new SVG or PNG QR code using the website encoder. No redirect or hosted QR service. Verify by decoding the generated modules; PNG also verifies rendered pixels. SVG requires no browser; PNG uses the installed local browser. Payload contents never enter the tool result. Includes a minimum four-module quiet zone.

NameRequiredDescriptionDefault
levelNoM
quietNo
scaleNo
formatNosvg
backgroundNo#ffffff
foregroundNo#000000
input_pathYesAbsolute path of the UTF-8 payload file. Text is kept exact, including any final newline.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.1/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing that payload contents never enter the tool result (a privacy guarantee the agent could not otherwise assume), that output is verified by decoding modules and, for PNG, rendered pixels, and that PNG requires a local browser while SVG does not. These are exactly the operational facts that change how an agent plans the call.

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?

Six tightly packed sentences with the core action front-loaded and no filler. The density is high but nearly every clause carries a distinct operational fact; the quiet-zone sentence tacked on at the end is the weakest placement.

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 write-a-file tool with no output schema and low schema coverage, the description supplies the verification story, the browser dependency, the privacy guarantee, and the quiet-zone floor. The only real omission is whether an existing file at output_path is overwritten, which is minor against what is covered.

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 description coverage is only 25%, so the description must carry more weight; it adds meaning for format (browser dependency) and quiet (four-module minimum), but says nothing about level, scale, foreground, or background, leaving half the parameters undocumented anywhere. The error-correction enum L/M/Q/H in particular gets no explanation.

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

Purpose4/5

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

States a specific verb and resource with scope: it reads a UTF-8 payload file and emits an SVG or PNG QR code via a local encoder. The closest sibling, abox_barcode_generate, is never named or contrasted, so an agent must infer the QR-vs-barcode split from the tool name alone.

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?

Gives real selection guidance for the format choice ('SVG requires no browser; PNG uses the installed local browser') and rules out a class of alternatives with 'No redirect or hosted QR service.' It stops short of explicit when-not conditions or naming barcode_generate as the alternative for non-QR symbologies.

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

abox_receipt_extractExtract a receipt into a local reportA

Run bundled English printed-text OCR on a local JPEG, PNG or WebP and write suggested receipt fields into JSON or CSV. All fields require human review; verification covers report structure, not recognition accuracy. Text, merchants and amounts stay in the local report. No uploads, model downloads, currency lookup or account access. Requires a local browser.

NameRequiredDescriptionDefault
formatNojson
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.9/5.0
Behavior5/5

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

The description adds significant behavioral context beyond annotations: it discloses that fields require human review, that verification covers structure not accuracy, that data stays local with no uploads or network access, and that a local browser is required. These details are crucial for correct use and are not contradicted by annotations.

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 front-loaded with the primary action and then efficiently lists key constraints and caveats. Every sentence adds value, though it could be slightly more compact without losing meaning.

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

Completeness4/5

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

Given the lack of an output schema and the tool's complexity, the description covers most essential aspects: input/output formats, accuracy limitations, privacy, and environment requirements. It could be improved by briefly indicating what receipt fields are extracted, but overall it provides sufficient context for an agent to invoke the tool correctly.

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 67%, with input_path and output_path having descriptions. The description adds meaning by specifying accepted image types (JPEG, PNG, WebP) for input_path and clarifying that format controls JSON or CSV output. However, it does not add details about output_path beyond what the schema already states.

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

Purpose4/5

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

The description states a specific verb (Run OCR) and resource (receipt) and clarifies input/output formats. It is clear what the tool does, but it does not explicitly distinguish itself from the sibling abox_document_scan, which could also be used for scanning documents.

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

Usage Guidelines3/5

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

Usage is implied by the description (English printed-text receipts in JPEG/PNG/WebP), but there is no explicit guidance on when to use this tool versus alternatives like abox_document_scan. No exclusions or alternative suggestions are provided.

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

abox_share_sessionOpen a direct text and file sharing windowA

Open a visible local browser companion for abox.tools Share Text. Host may preload local files or a UTF-8 text file. The person clicks Start or Connect and approves each reader in the window. Existing abox.tools pairing sees IP addresses, timing and negotiation metadata; content goes directly over encrypted host-candidate WebRTC with no relay or discovery. Receive saves need a new output_dir and an explicit Save click; contents and pairing secrets are never returned to the agent. Requires directly reachable peers and an active graphical desktop. The window expires after 30 minutes by default.

NameRequiredDescriptionDefault
roleYes
room_nameNoOptional share code; omit to generate it privately in the companion window.
text_pathNoAbsolute local filesystem path. URLs and network shares are refused.
output_dirNoNew directory for explicitly saved received content. Peer filenames are replaced with random safe names.
input_pathsNo
ttl_minutesNo

TDQS

A4.3/5.0
Behavior5/5

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

Goes well past the annotations by disclosing the human-in-the-loop approval model, encrypted host-candidate WebRTC with no relay or discovery, the 30-minute window expiry, the fact that contents and pairing secrets are never returned to the agent, and that received saves require a new output_dir plus an explicit Save click. It also notes what the existing pairing observes (IP addresses, timing, negotiation metadata).

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?

Five dense sentences, front-loaded with the core action and followed by behavior, then constraints. Every sentence adds information, but the middle clauses are packed and slightly run-on (IP/timing/negotiation metadata in the same breath as transport details).

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 six-parameter, no-output-schema interactive tool, the description covers what the agent needs: prerequisites, human approval, that no content or secrets come back, the expiry, and the output_dir requirement. Nothing essential to calling it correctly is missing.

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

Parameters4/5

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

With only 50% schema description coverage, the description compensates well: it maps host preloading to input_paths/text_path (UTF-8 text file), explains output_dir must be new with an explicit Save, and ties the 30-minute default to ttl_minutes. The required role enum (host vs reader) is only implied through 'Host may preload' and 'Receive saves', never stated directly.

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

Purpose4/5

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

States a specific verb and resource: 'Open a visible local browser companion for abox.tools Share Text', then clarifies the peer-to-peer text/file handoff. It is readily distinguishable from the other session tools (camera_session, walkie_session, voice_oncall_session) which are audio/video oriented, though it never names them explicitly.

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?

Gives clear operating context: the person must click Start or Connect and approve each reader, and it 'Requires directly reachable peers and an active graphical desktop.' That effectively excludes headless/agent-only use, but no explicit alternative tool is named for cases where those prerequisites fail.

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

abox_svg_to_imageRasterize a local SVGA

Render a local static self-contained SVG into PNG, JPEG or WebP using the existing abox.tools sizing and codecs. Refuses active content, animation and external resources. Supports intrinsic dimensions or a requested box, transparency and JPEG background. Writes and verifies a new raster image. Installed fonts can affect appearance.

NameRequiredDescriptionDefault
fitNofit
widthNo
formatNopng
heightNo
qualityNo
backgroundNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4/5.0
Behavior4/5

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

Annotations mark it as a non-read-only, non-destructive write. The description adds genuine behavioral context beyond that: content refusals, write-and-verify behavior, and the caveat that installed fonts affect appearance. Good disclosure.

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?

Four dense, front-loaded sentences, each adding constraints or behavior. Little waste, though the sizing/codecs phrasing is slightly compressed.

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

Completeness3/5

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

No output schema and 8 params at 25% coverage. The description covers behavior and intent well but does not fully document the sizing (fit/width/height) and quality parameters an agent needs to call it correctly.

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 only 25%, so the description must compensate. It mentions output formats, intrinsic vs requested box sizing, transparency and JPEG background, but leaves fit enum semantics, width/height, and quality unexplained, so compensation is partial.

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?

Specific verb 'Render' plus resource 'local static self-contained SVG' into named output formats. Clearly a rasterizer, and 'using the existing abox.tools sizing and codecs' distinguishes it from generic siblings like abox_image_convert.

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?

States clear guardrails: only static, self-contained SVGs, refusing active content, animation and external resources. Gives context for when it applies but does not explicitly route to an alternative (e.g. abox_image_convert) for unsupported cases.

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

abox_text_diffCompare local text filesA

Compare two UTF-8 files and write a new unified .diff/.patch using the website bounded Myers engine. Verify that applying the patch to the left file exactly reconstructs the right, including line endings and final newlines. Ignore options affect comparison summaries only; the exported patch always describes the original files. Large rewrites can use coarse hunks. Returns counts and paths without source lines.

NameRequiredDescriptionDefault
left_pathYesAbsolute local filesystem path. URLs and network shares are refused.
right_pathYesAbsolute local filesystem path. URLs and network shares are refused.
ignore_caseNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
context_linesNo
ignore_whitespaceNo
ignore_blank_linesNo

TDQS

A4.3/5.0
Behavior5/5

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

Annotations only declare the write/idempotency profile; the description adds genuinely non-obvious behavior: it writes a NEW file at output_path, runs a round-trip verification that the patch exactly reconstructs the right file including line endings and final newlines, ignore options change summaries but never the exported patch, and large rewrites may produce coarse hunks. It also states what is returned (counts and paths, no source lines). This is well beyond what 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?

Four sentences, front-loaded with the core action, and each sentence carries distinct information (verification guarantee, ignore-option caveat, hunk granularity, return shape). Minor jargon ('website bounded Myers engine') costs a little clarity but is not filler.

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

Completeness4/5

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

With no output schema, the description covers the return shape (counts and paths). It also covers the critical guarantee an agent needs before trusting the artifact. Missing only edge details: what happens if output_path exists, and what context_lines controls.

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

Parameters4/5

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

Schema coverage is only 43%, and the description compensates for the biggest semantic gap: ignore_case/ignore_whitespace/ignore_blank_lines affect only the comparison summary, not the emitted patch. output_path is framed as the new .diff/.patch destination. context_lines is never explained, and overwrite/refusal behavior for an existing output_path is unstated.

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?

States a specific verb and resource: compare two UTF-8 files and write a unified .diff/.patch to a new path. No sibling does text diffs, so it is unambiguously distinguishable from the format/inspect/conversion tools listed. The scope (local files, UTF-8) is stated up front.

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

Usage Guidelines3/5

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

Usage context is implied rather than stated: 'Ignore options affect comparison summaries only' and 'Large rewrites can use coarse hunks' hint at when these knobs matter, but there is no explicit when-to-use/when-not or named alternative. An agent can infer the tool's role, but it is not guided on file-type preconditions or when to prefer another tool (e.g. abox_file_hash for identity checks).

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

abox_video_compressCompress a local H.264 videoA

Decode an admitted H.264 MP4/MOV locally and re-encode a new MP4 toward a byte target using the website engine. Checks sequence headers and slice prefixes before decoding and verifies all generated frames and timestamps. Copies supported audio packets exactly when requested. Check fitted; the target can be missed and size or color can change. Requires an installed browser with native H.264 decode/encode support.

NameRequiredDescriptionDefault
max_sideNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
target_bytesYes

TDQS

A3.8/5.0
Behavior5/5

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

Adds substantial context beyond the annotations: pre-decode header/slice validation, post-encode frame and timestamp verification, exact audio packet copying, and the important warning that the byte target is best-effort with possible size or color change. This tells an agent about failure modes and output fidelity that the flags alone cannot convey.

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?

Front-loaded action statement followed by verification, audio, and caveat sentences; every sentence carries information. The terse fragment 'Check fitted;' is awkward and slightly obscures the caveat.

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

Completeness3/5

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

With no output schema, the description does not say what is returned on success or how a missed target is reported to the caller. Overwrite behavior for output_path and the meaning of max_side are also left unstated, which matters for a non-idempotent write tool.

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 only 40% (paths documented, but max_side, keep_audio, target_bytes undocumented). The description partially compensates by implying the byte target and conditional audio copying, but max_side, the 1920 default downscale, and the target_bytes range are never mentioned.

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

Purpose4/5

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

Specific verb and resource: decodes an H.264 MP4/MOV locally and re-encodes to a new MP4 toward a byte target. This implicitly separates it from packet-copy siblings like abox_video_remux, but no sibling is named to make the boundary explicit.

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

Usage Guidelines3/5

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

States a prerequisite (installed browser with native H.264 decode/encode) and a caveat (target may be missed), which implies the right context. However, it never says when to prefer remux/trim/join instead, and gives no guidance on what to do if exact size matters.

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

abox_video_cropCrop a local H.264 videoA

Crop an admitted H.264 MP4/MOV to exact local JSON coordinates in the decoded display image, then write a re-encoded MP4. Checks source coded geometry before decode, verifies all output frames/times and any copied audio packets. Color can change and unselected metadata is omitted. Requires a local browser with native H.264 support.

NameRequiredDescriptionDefault
qualityNomedium
crop_pathYesAbsolute local filesystem path. URLs and network shares are refused.
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A3.7/5.0
Behavior4/5

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

With annotations present, the description goes well beyond them: it discloses verification behavior (coded geometry check pre-decode, frame/time and audio-packet verification) and two real side effects an agent must know — 'Color can change and unselected metadata is omitted.' It does not state whether an existing output_path is overwritten, which is the main remaining behavioral gap.

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?

Four sentences, front-loaded with the operation and output before verification details and caveats. Dense but each sentence carries information; minor jargon ('admitted', 'coded geometry') adds parsing cost without adding precision.

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

Completeness4/5

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

For a mutation tool with no output schema and five parameters, the description covers inputs, side effects, verification and environment prerequisites. Missing only return-value shape and overwrite behavior, both of which matter for a write tool but are secondary to what is already disclosed.

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 60%, so baseline is roughly 3. The description adds real meaning for crop_path ('exact local JSON coordinates in the decoded display image') and hints at keep_audio via 'any copied audio packets', but says nothing about the quality enum or the overwrite semantics of output_path.

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

Purpose4/5

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

States a specific verb and resource ('Crop an admitted H.264 MP4/MOV ... write a re-encoded MP4') plus the crop coordinate source, which clearly separates it from siblings like abox_video_rotate_bake or abox_video_trim. It never names a sibling explicitly, so differentiation is inferred from the operation itself rather than stated.

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

Usage Guidelines3/5

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

Usage is implied by the operation and constrained by a format restriction (H.264 MP4/MOV only) and a prerequisite ('Requires a local browser with native H.264 support'), which is genuinely useful gating. However, there is no explicit statement of when to prefer this over a rotate-bake or trim workflow, nor any exclusion beyond format.

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

abox_video_frameExtract a local video frameA

Decode the admitted H.264 source frame at or before the requested time and save a new lossless PNG after source orientation. Checks coded geometry before decoding and compares every PNG pixel. Does not include audio, source text or metadata in the result. Requires a local browser with native H.264 decoding.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
time_secondsNo

TDQS

A3.9/5.0
Behavior4/5

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

Annotations only declare the safety profile (readOnly=false, destructive=false, openWorld=false), while the description adds real behavioral context beyond them: it requires a local browser with native H.264 decoding, checks coded geometry before decoding, and verifies every PNG pixel. It omits what happens if output_path already exists, which is the main remaining gap for a write tool.

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?

Four sentences, each contributing scope, mechanism, exclusions, or prerequisites, with the core action front-loaded. It is dense and somewhat jargon-heavy ('admitted', 'coded geometry'), but no sentence is filler.

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

Completeness4/5

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

There is no output schema, and the description covers the return implicitly by saying a new lossless PNG is saved and that audio, text, and metadata are excluded. Runtime prerequisites and path restrictions are stated, leaving only overwrite behavior unaddressed.

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 67%, so most parameters carry their own documentation. The description adds meaningful semantics by specifying the frame is taken 'at or before' the requested time, but it does not explain time_seconds' 0-60 range or default value, which the schema only encodes numerically.

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?

States a specific verb and resource: decode an H.264 source frame at/before a time and save it as a lossless PNG. The frame-extraction scope is clearly distinct from sibling video tools like abox_video_to_gif, abox_video_trim, and abox_video_rotate_bake.

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

Usage Guidelines3/5

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

The use case (pull a still frame out of a video) is implied clearly, but there is no explicit when-to-use guidance or routing against alternatives such as abox_video_inspect or abox_video_rotate_bake. Usage is inferable rather than stated.

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

abox_video_inspectInspect a local MP4 or MOVA
Read-onlyIdempotent

Inspect bounded MP4/MOV sample tables, track geometry, codecs and timing without decoding video or audio. Returns counts and technical headers without packet contents or metadata text. Incoming nonidentity edit lists are refused to avoid exposing hidden media. Requires no browser.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, non-destructive and closed-world, so the bar is lower, yet the description still adds real behavioral detail: bounded sampling, no packet contents or metadata text returned, and rejection of nonidentity edit lists to avoid exposing hidden media. That is exactly the kind of refusal semantics an agent cannot infer from annotations.

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

Conciseness5/5

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

Four tight sentences, with the core scope front-loaded and each subsequent sentence contributing a distinct fact (return shape, refusal behavior, environment requirement). No filler.

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?

With no output schema, the description appropriately characterizes return values ('counts and technical headers'), discloses the privacy-motivated refusal path, and confirms no browser is needed. For a single-parameter read tool, an agent has everything required to call it correctly.

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?

Only one parameter and schema coverage is 100%, with the schema itself explaining that absolute local paths are required and URLs/network shares are refused. The description adds no further meaning about input_path, so the baseline 3 applies.

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?

States a specific verb (Inspect) and a precisely scoped resource (bounded MP4/MOV sample tables, track geometry, codecs, timing) with the explicit exclusion of decoding video/audio. This clearly separates it from abox_gif_inspect, abox_exif_inspect and abox_dicom_inspect, which target different containers.

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?

Gives clear conditions of use ('without decoding', 'requires no browser') and the refusal boundary for nonidentity edit lists. It does not explicitly compare itself to sibling tools like abox_video_remux or abox_video_trim, so the when-to-use-vs-alternative routing is implied rather than stated.

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

abox_video_joinJoin local videos without re-encodingA

Join 2 to 8 compatible MP4/MOV files in input order into a new MP4. Codec descriptions, dimensions, orientation and requested audio must agree. Verifies copied packet bytes, track descriptions and edit lists; performs no video or audio decoding. Incoming nonidentity edit lists are refused. Requires no browser.

NameRequiredDescriptionDefault
keep_audioNo
input_pathsYes
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover safety (readOnlyHint=false, destructiveHint=false). The description adds valuable behavioral details: it verifies packet bytes and track descriptions, performs no decoding, and refuses nonidentity edit lists. It does not explain overwrite behavior or permissions, but this is beyond what annotations require.

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

Conciseness5/5

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

The description is front-loaded with the core action and then layers constraints and verification details efficiently. Every sentence adds relevant information without redundancy.

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

Completeness3/5

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

Given no output schema and incomplete parameter descriptions, the description covers most behavioral constraints well. However, the missing explanation of keep_audio (e.g., whether dropping audio relaxes compatibility checks) leaves a gap for correct invocation, and output overwrite behavior is unstated.

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

Parameters2/5

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

Schema coverage is low (33%); only output_path has a description, and input_paths items are described. The description clarifies that input_paths order matters and files must be 2–8 compatible videos, but it never explains the keep_audio parameter or its default, leaving a key input ambiguous.

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 clearly states the specific action (join), the resource (2–8 compatible MP4/MOV files), and the output (a new MP4). It distinguishes itself from siblings like video_remux or video_trim by focusing on concatenation in input order.

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?

It provides clear context: use this to concatenate 2–8 compatible local videos without re-encoding. It mentions constraints (compatibility, no browser) but does not explicitly name when to use alternatives or what to do if files are incompatible.

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

abox_video_remuxRepackage a local video as MP4A

Copy admitted H.264 MP4/MOV picture packets and optional AAC sound into a new MP4 using the website conversion copy path. Preserves packet bytes, timing, descriptions and orientation; no re-encoding fallback. Fragmented or edited timelines and complex transforms are refused. Packet verification does not prove codec playback compatibility. Requires no browser.

NameRequiredDescriptionDefault
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.4/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: preserves packet bytes, timing, descriptions and orientation, refuses unsupported timelines, has no re-encoding fallback, and warns that packet verification does not prove playback compatibility. These details are consistent with the non-read-only, non-destructive annotations.

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

Conciseness5/5

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

Front-loads the operation and follows with tightly scoped constraints and caveats. Every sentence carries useful information for invocation or interpretation, with no filler.

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

Completeness4/5

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

The description covers codec admission, preservation behavior, refusal cases, and a verification caveat, which is strong for a no-output-schema tool. It leaves some operational gaps, such as overwrite behavior for output_path and error semantics when input is not admitted.

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 67%; input_path and output_path are described in the schema themselves. The description mentions optional AAC sound, which partially clarifies keep_audio, but it never explicitly explains the keep_audio parameter or what happens when audio is absent or dropped.

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?

States a specific verb and resource: copying admitted H.264 MP4/MOV picture packets and optional AAC sound into a new MP4. The no-re-encoding and no-transform constraints distinguish it from siblings like abox_video_trim and abox_video_join.

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?

Clearly establishes when the tool applies by naming admitted codecs/containers and by refusing fragmented or edited timelines and complex transforms. It does not explicitly name alternative sibling tools for those refused cases, so it stops short of full routing guidance.

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

abox_video_reverseReverse a local H.264 videoA

Reverse admitted video frames into a new re-encoded H.264 MP4 and verify output timing and decoding. Silent by default. Explicit keep_audio:true also decodes and reverses matching-duration AAC using bounded packet audio processing and requires a native AAC encoder; requested sound is never silently dropped. Coded input geometry is checked before decoding. Requires a local browser and native codecs.

NameRequiredDescriptionDefault
qualityNomedium
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing output verification of timing and decoding, a silent-by-default audio policy, explicit AAC encoder requirements for keep_audio, the guarantee that requested sound is never silently dropped, and pre-decode geometry validation. These are exactly the behavioral details an agent needs before invoking a non-idempotent mutation.

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 purpose is front-loaded in the first sentence, and each subsequent sentence adds a distinct behavioral fact. It is somewhat dense with technical phrasing ('bounded packet audio processing'), but no sentence is wasted.

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

Completeness4/5

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

For a four-parameter mutation tool with no output schema, the description covers the critical behaviors: audio handling, geometry checks, verification, and environment prerequisites. It falls short only on quality-level semantics and on output_path overwrite behavior.

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

Parameters4/5

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

Schema coverage is 50%, and the description compensates strongly for keep_audio by explaining its default, its dependency on a native AAC encoder, and the no-silent-drop guarantee. The quality enum, however, remains undocumented in both schema and description.

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?

States a specific verb and resource: reverse video frames into a re-encoded H.264 MP4, plus output verification. This clearly distinguishes it from siblings like abox_video_rotate, abox_video_trim, and abox_video_remux.

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

Usage Guidelines3/5

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

The description gives useful prerequisites ('Requires a local browser and native codecs') and clarifies the default silence behavior, but it never states when to choose this tool over alternatives such as abox_video_trim or abox_video_rotate. Usage is implied rather than explicitly routed.

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

abox_video_rotateRotate a local video without re-encodingA

Copy an admitted MP4/MOV video into a new MP4 with a 90, 180 or 270 degree display matrix rotation. Verifies every packet, timeline, description and matrix without decoding. Standard orientation and unsquashed geometry only; fragmented or edited timelines are refused. Sound must be AAC or explicitly omitted. Pixels are not baked into the new orientation; player support varies. Requires no browser.

NameRequiredDescriptionDefault
degreesNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare not-read-only, not-destructive, not-open-world; the description adds substantial behavior beyond that: stream-copy without decoding, full packet/timeline/matrix verification, hard refusals for fragmented or edited timelines, an AAC-only audio rule, and the important caveat that pixels are not baked so player support varies. It stops short of saying what happens if output_path already exists (overwrite vs. fail), which is the main remaining gap for a mutation tool.

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?

Front-loaded with the core action and tightly packed — nearly every sentence carries a distinct constraint or caveat. It is telegraphic rather than verbose, though 'Requires no browser' is a low-value trailing note that adds little for an agent choosing between tools.

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

Completeness4/5

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

For a mutation tool with no output schema, the description covers inputs, codec/container preconditions, refusals, and a caveat about downstream rendering. It is close to complete, missing only overwrite/conflict behavior for output_path and any hint about the return payload.

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

Parameters4/5

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

With 50% schema description coverage, the description compensates for the undocumented parameters: 'Sound must be AAC or explicitly omitted' explains the constraint governing keep_audio, and 'display matrix rotation' clarifies that degrees produces a metadata rotation rather than re-encoded pixels. The path parameters and the 90/180/270 enumeration are only repeated from the schema, not enriched.

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?

States a specific verb and resource ('Copy an admitted MP4/MOV video into a new MP4') plus the exact operation applied (90/180/270 display matrix rotation). This distinguishes it from sibling video tools like abox_video_trim, abox_video_join and abox_video_remux, which do not apply rotation.

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

Usage Guidelines3/5

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

The description gives acceptance preconditions ('standard orientation and unsquashed geometry only', 'fragmented or edited timelines are refused', 'Sound must be AAC or explicitly omitted'), which implicitly tells the agent when the tool will fail. However, it never names an alternative path when those preconditions don't hold, nor when to prefer this over remux/re-encode tools; the agent must infer that.

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

abox_video_rotate_bakeBake local video rotation into pixelsA

Decode admitted H.264 video and permanently turn its pixels by 90, 180 or 270 degrees into a newly encoded MP4 with identity display matrix. Verifies all generated frames and timing and exact copied AAC audio when requested. This applies source orientation as well as the additional turn; color and precision can change. Requires a local browser and native H.264 encoding.

NameRequiredDescriptionDefault
degreesNo
max_sideNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4/5.0
Behavior5/5

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

Goes well beyond the annotations: it warns that color and precision can change (a real quality-loss caveat), states that all generated frames and timing are verified, notes exact AAC copy when requested, and discloses the local browser plus native H.264 requirement. That is exactly the extra context annotations can't carry.

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?

Four dense sentences, front-loaded with the operation and its output format before the caveats. No filler, though the mixing of output format, verification, and prerequisites in one block makes it slightly list-like.

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

Completeness4/5

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

For a re-encoding mutation with no output schema and no annotations carrying behavior, the description covers what gets produced, what may degrade, and what environment is needed. The only real gap is max_side, which affects output resolution but is never explained.

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

Parameters4/5

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

With only 40% schema coverage, the description does real work: it enumerates the 90/180/270 options and clarifies the turn applies on top of source orientation, and the AAC copy statement maps to keep_audio. It says nothing about max_side, which remains undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb and resource — decode H.264, permanently rotate pixels, emit a new MP4 with an identity display matrix — which is far more precise than the name 'bake' on its own. It implicitly separates itself from a metadata-only rotate, but never names abox_video_rotate, so sibling differentiation is left to inference.

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

Usage Guidelines3/5

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

The words 'permanently' and 'newly encoded' hint that this is the re-encode path rather than the metadata path, and the local-browser/H.264 prerequisite gives some context. But there is no explicit 'use this instead of abox_video_rotate when...' statement, so an agent picking between the two must reason it out.

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

abox_video_timelapseMake a local time-lapse videoA

Speed up admitted H.264 video into a silent new H.264 MP4 with explicit speed, frame rate, maximum side and quality. Reuses the website frame-selection and encoding engines, verifies decoded output frames and timing, and refuses fewer than two planned frames. Source audio and metadata are omitted. Requires a local browser and native H.264 encoding.

NameRequiredDescriptionDefault
fpsNo
speedNo
qualityNomedium
max_sideNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.2/5.0
Behavior5/5

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

Annotations only declare the generic non-readOnly/non-destructive/non-idempotent profile; the description adds substantive behavior: audio and metadata are dropped, output frames and timing are verified, runs are refused below two frames, and the environment needs a local browser with native H.264. That is exactly the context annotations cannot convey.

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?

Front-loaded with verb and resource, and most sentences carry real constraints (silent output, frame-count refusal, local-browser requirement). The 'reuses the website frame-selection and encoding engines' clause is internal implementation detail that doesn't help tool selection.

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

Completeness4/5

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

For a mutating, non-idempotent tool with no output schema, it covers environment, input restrictions, what is stripped from the source, and validation. The notable gap is what happens to an existing file at output_path (overwrite vs. refuse), which an agent needs before calling.

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

Parameters4/5

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

Only 33% of params are schema-documented (the two paths), so the description carries the burden for speed, frame rate, max side, and quality — and it does name all four as the explicit controls alongside 'silent' output. It still doesn't explain semantics such as speed being a multiplier or units, so it doesn't fully close the gap.

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

Purpose4/5

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

States a specific verb and transformation ('Speed up admitted H.264 video into a silent new H.264 MP4') plus the tunable dimensions, which clearly separates it from siblings like abox_video_compress, abox_video_trim, or abox_video_reverse. It never names a sibling explicitly, so it stops just short of a 5.

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?

Gives real preconditions: input must be 'admitted H.264', requires a local browser and native H.264 encoding, and it refuses fewer than two planned frames. It does not route the agent to an alternative (e.g., an image-sequence or GIF path) when those preconditions fail, so no explicit when-not guidance.

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

abox_video_to_gifConvert local video to GIFA

Decode an admitted H.264 time range and write a bounded animated GIF using the website palette and encoding engines. Supports sampling rate, size, color count, dithering and looping. Verifies complete GIF streams, frame timing and quantized pixels. At most 200 frames and 16 million total frame pixels; color and timing are lossy, and sound is omitted. Requires a local browser.

NameRequiredDescriptionDefault
fpsNo
loopNo
colorsNo
ditherNo
max_sideNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
end_secondsNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
start_secondsNo

TDQS

A3.9/5.0
Behavior5/5

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

Goes well beyond the annotations (which only say it is a non-read-only, non-idempotent write). It discloses hard caps (200 frames, 16M pixels), lossiness of color and timing, sound omission, that output streams/frame timing/pixels are verified, and the 'Requires a local browser' environment dependency — all material behavioral facts an agent needs.

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?

Four dense sentences, front-loaded with the core action, with limits and caveats after. Efficient, though the phrasing 'admitted H.264' and 'website palette and encoding engines' is slightly opaque jargon that costs a little clarity.

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

Completeness4/5

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

For a 9-param mutation tool with no output schema and no annotations detail, the description supplies limits, lossiness, verification, and environment requirements. It is nearly complete; only per-parameter range/default context is missing, though that lives in the schema.

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 only 22%, so the description needs to carry weight; it names five knobs (sampling rate, size, color count, dithering, looping) mapping to fps, max_side, colors, dither, loop. But start_seconds/end_seconds semantics beyond 'time range' and units/format details are left to the schema, and the 60s/1-50 ranges are not surfaced.

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

Purpose4/5

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

States a specific verb+resource ('Decode ... and write a bounded animated GIF') and scopes it to a converted video time range, which distinguishes it from siblings like abox_gif_create or abox_video_reverse. However, it never names the near-neighbor abox_gif_create or explains the distinction, so an agent must infer it from the name alone.

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

Usage Guidelines3/5

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

The description implies usage through constraints ('Decode an admitted H.264 time range', 'Requires a local browser') but never states when to choose this over abox_gif_create or abox_gif_split, nor any exclusions. Usage is inferable but not guided.

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

abox_video_trimTrim local video without re-encodingA

Copy selected MP4/MOV ranges into a new MP4 using the existing website sample-copy engine. Verifies every copied packet and output edit list. First non-keyframe cuts require explicit allow_preroll:true; later sections must start on keyframes. Encoded boundary footage can remain hidden by edit lists, so this is not redaction. Incoming edited timelines are refused. Requires no browser.

NameRequiredDescriptionDefault
rangesYes
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
keep_audioNo
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.
allow_prerollNo

TDQS

A4.1/5.0
Behavior5/5

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

The description adds substantial behavior beyond the annotations: it verifies copied packets and output edit lists, explains keyframe/preroll constraints, warns that boundary footage may remain hidden, and clarifies that this is not redaction. These details are exactly what an agent needs to avoid misusing a sample-copy trim operation.

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 dense but front-loaded and mostly every sentence contributes operational context. One phrase, such as 'Requires no browser,' is less essential, but the overall structure is efficient.

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

Completeness4/5

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

For a non-reencoding video trim tool with no output schema and sparse annotations, this is largely complete: it covers formats, keyframe behavior, verification, edit-list caveats, and refusal of edited timelines. It still leaves some parameter-level details, such as audio handling, to the schema.

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?

With only 40% schema description coverage, the description does useful work by explaining allow_preroll and the keyframe rule, and by naming MP4/MOV input and MP4 output. However, it does not explain keep_audio or the ranges structure beyond what the schema already implies.

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

Purpose4/5

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

The description states a specific action: copying selected MP4/MOV ranges into a new MP4 without re-encoding. It is clear what the tool does, though it does not explicitly distinguish itself from nearby tools such as abox_video_remux or abox_video_join.

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?

It gives important usage conditions: first non-keyframe cuts require allow_preroll:true, later sections must start on keyframes, and already-edited timelines are refused. It does not explicitly compare against alternative tools, but the applicable context and exclusions are clear.

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

abox_voice_oncall_sessionOpen a direct voice inbox windowA

Open the local companion for abox.tools Voice Oncall as host or sender. The host listens and moderates incoming senders; a sender grants microphone permission and holds Talk. Start, invitations, optional passwords and approvals stay in the visible window. Existing abox.tools pairing receives negotiation metadata; voice goes directly between reachable peers, with no relay, discovery or recording. No sound or pairing secrets are returned to the agent.

NameRequiredDescriptionDefault
roleYes
room_nameNo
ttl_minutesNo

TDQS

A3.6/5.0
Behavior5/5

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

Annotations declare the safety profile (readOnly=false, destructive=false, openWorld=true), and the description adds substantial context beyond them: voice travels directly peer-to-peer with no relay, discovery or recording; invitations/passwords/approvals stay in the visible window; and no sound or pairing secrets are returned to the agent. That is exactly the operational and privacy behavior an agent needs before invoking an open-world session.

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?

Front-loaded and dense with no filler; the operating mode comes first, then behavior, then the return-value caveat. It is slightly packed into one paragraph, but every sentence carries information.

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

Completeness3/5

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

The absence of an output schema is largely compensated by the explicit statement that no sound or pairing secrets are returned. What holds it at 3 is the missing coverage of room_name and ttl_minutes, which leaves an agent unable to set session duration or understand naming constraints from the description.

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

Parameters2/5

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

Schema coverage is 0%, so the description carries the full burden, and it only explains the role parameter (host vs sender). room_name and ttl_minutes (default 30, max 120) are never mentioned, leaving an undocumented 80-char name constraint and an expiry the agent cannot reason about from the text alone.

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

Purpose4/5

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

States a specific verb (open) and resource (local companion for abox.tools Voice Oncall) and immediately splits it into the two operating modes, host and sender. An agent knows what the tool does, though it never names the close sibling (abox_walkie_session) it must be distinguished from in this crowd of session tools.

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

Usage Guidelines3/5

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

"The host listens and moderates incoming senders; a sender grants microphone permission and holds Talk" gives usable role-selection context, which is effectively usage guidance for the required parameter. However, there is no when-to-use versus when-not, and no pointer to alternatives such as abox_walkie_session or abox_camera_session among the many session siblings.

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

abox_walkie_sessionOpen a direct voice broadcast windowA

Open the local companion for abox.tools Walkie Talkie as host or listener. The person starts pairing in the window. A host grants microphone permission and holds Talk to transmit; listeners need no microphone. The existing pairing service sees negotiation metadata; voice travels directly over encrypted host-candidate WebRTC with no relay, discovery or recording. Invitations and voice remain outside agent context.

NameRequiredDescriptionDefault
roleYes
room_nameNo
ttl_minutesNo

TDQS

A3.6/5.0
Behavior5/5

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

Goes well beyond the annotations: it discloses that voice travels directly over encrypted host-candidate WebRTC with no relay, discovery or recording, that the pairing service only sees negotiation metadata, and that invitations and voice stay outside agent context. These are exactly the privacy, security and side-effect facts an agent needs and that no structured field conveys. No contradiction with readOnlyHint=false or destructiveHint=false.

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?

Front-loaded with the action, then role behavior, then transport/privacy facts. Four sentences with little waste, though the WebRTC sentence is dense and could be split for scanning.

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

Completeness3/5

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

Given openWorldHint, no output schema and 0% parameter coverage, the description is strong on behavioral context but silent on what the call returns (session handle, window state, pairing code) and on how this differs from other session tools. An agent knows the privacy model but not the outcome of invoking it.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must carry the parameters. It meaningfully explains the role enum (host needs microphone and transmits, listener does not), but room_name and ttl_minutes are never mentioned, leaving two of three parameters completely undocumented in both schema and description.

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

Purpose4/5

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

States a specific verb and resource: 'Open the local companion for abox.tools Walkie Talkie as host or listener', which tells an agent exactly what will happen (a local window opens) and the two modes. It does not distinguish itself from close siblings like abox_voice_oncall_session or abox_share_session, so an agent cannot route between them from the text alone.

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

Usage Guidelines3/5

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

It explains the host-vs-listener usage model (host grants mic and holds Talk, listeners need no microphone) and that the human starts pairing in the window, which implies when each role is appropriate. However, there is no explicit when-to-use/when-not guidance and no reference to any alternative tool, which matters given several session-opening siblings.

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

abox_xml_formatFormat a local XML fileA

Pretty-print or minify local UTF-8 XML using the existing website parser and printer. Preserves mixed content and xml:space behavior. Rejects DTDs and custom entities; no external resource resolution. Writes a new .xml file and verifies document structure and text. Formatting can change insignificant whitespace and quote spelling.

NameRequiredDescriptionDefault
indentNo2
minifyNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond annotations, it discloses important behavior: mixed content and xml:space are preserved, DTDs/custom entities are rejected, external resolution is disabled, output is written and structurally/textually verified, and formatting may alter insignificant whitespace and quote spelling. These are material operational details for an agent writing a new XML file.

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

Conciseness5/5

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

The description is five sentences, front-loaded with the core action and followed by constraints and side effects. Every sentence adds useful information without repetition.

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

Completeness4/5

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

For a file-writing formatter with no output schema, the description covers the essential behavior, constraints, and output verification. It could be more complete about overwrite behavior and what verification result is returned, but the core operational details are present.

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 50%. The description clarifies the minify behavior and local-path constraints, but it does not explain the indent parameter's '2', '4', and 'tab' options, leaving part of the parameter semantics to the schema enum.

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 states a specific verb and resource: pretty-print or minify local UTF-8 XML and write a new .xml file. It is easy to distinguish from siblings like abox_xml_json or abox_code_format because it is explicitly XML formatting, not conversion or general code formatting.

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?

It gives clear usage constraints: local UTF-8 XML only, DTDs and custom entities are rejected, and external resources are not resolved. It does not explicitly name alternative tools or say when to prefer abox_xml_json versus this formatter, so it falls short of full when/when-not/alternatives guidance.

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

abox_xml_jsonConvert local XML and JSONA

Convert XML to JSON using @ attributes, #text and repeated-child arrays, or JSON to XML under a fixed root element. Verifies the exact existing source mapping, which is lossy: XML values are strings, mixed child/text order and comments can be lost, and JSON null/empty containers collapse. Refuses ambiguous name collisions, DTDs and custom entities. Contents remain in the local output. Requires no browser.

NameRequiredDescriptionDefault
indentNo2
directionYes
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the annotations, the description discloses important behavioral traits: the mapping is lossy, XML values become strings, mixed child/text order and comments may be lost, JSON null/empty containers collapse, and certain inputs are refused. These are exactly the operational risks an agent needs to know before invoking the conversion.

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

Conciseness5/5

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

The description is front-loaded with the core conversion purpose and then layers in important lossiness and refusal constraints. It is dense but appropriately sized, with no redundant or purely decorative sentences.

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

Completeness4/5

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

For a local file conversion tool with no output schema, the description covers the major behavioral concerns: mapping conventions, lossiness, refusals, and local output. It leaves minor gaps around output-file overwrite behavior and the indent parameter, but the overall context is sufficient for correct invocation.

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?

The description adds useful semantics for the direction parameter by explaining both conversion directions and their mapping behavior. However, it does not explain the indent parameter, and schema coverage is only 50%, so the description does not fully compensate for the undocumented parameters.

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 names a specific verb and resource pair: converting XML to JSON or JSON to XML. It also distinguishes this conversion operation from formatting siblings by describing the mapping conventions (@ attributes, #text, repeated-child arrays) and fixed XML root behavior.

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 clearly frames the tool as a local file conversion operation and states exclusions such as ambiguous name collisions, DTDs, custom entities, and browser use. It does not explicitly point to sibling alternatives like abox_xml_format or abox_json_format, so it falls short of full when-to-use-versus-alternative guidance.

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

abox_yaml_jsonConvert local YAML and JSON filesA

Convert a local UTF-8 file between the website-supported YAML subset and JSON. Preserves ordered values, duplicate keys and large number tokens; formatting, string escapes and comments may change. YAML anchors, aliases, custom tags and multiple documents are unsupported. Optional natural key sorting on YAML to JSON. Writes and verifies a new .json or .yaml/.yml file; no contents returned.

NameRequiredDescriptionDefault
indentNo2
directionYes
sort_keysNo
input_pathYesAbsolute local filesystem path. URLs and network shares are refused.
output_pathYesAbsolute local filesystem path. URLs and network shares are refused.

TDQS

A4.4/5.0
Behavior5/5

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

Annotations only give a generic safety profile (readOnly=false, destructive=false, openWorld=false). The description adds substantive behavior: the tool writes and verifies a new file, returns no contents, preserves ordered values, duplicate keys and large number tokens, and may alter formatting, escapes and comments. That fidelity tradeoff and the unsupported-feature list are exactly the kind of context annotations cannot convey.

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

Conciseness5/5

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

Four tightly packed sentences with no filler; the core action and format pair lead, followed by fidelity caveats, unsupported cases, and the sort option. Each sentence contributes information the agent needs.

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

Completeness4/5

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

With no output schema, the description correctly states that nothing is returned and that a file is written and verified, and it enumerates unsupported YAML constructs. The notable omission is overwrite behavior for output_path on a mutation tool, which an agent would want to know before invoking.

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

Parameters4/5

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

Schema coverage is 40%, so the description must compensate and largely does: it explains the direction pair implicitly via 'between ... YAML subset and JSON', and says sort_keys is an 'optional natural key sorting on YAML to JSON', adding the applies-only-to-YAML direction constraint the schema lacks. It never mentions the indent parameter (enum 2/4), leaving one gap.

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?

States a specific verb (Convert) and resource (a local UTF-8 file between YAML and JSON), with scope qualifiers like the supported 'website-supported YAML subset'. The YAML↔JSON conversion pair inherently separates it from siblings such as abox_xml_json and abox_json_format, so an agent can identify it without opening 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 Guidelines3/5

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

Usage is implied by the format pair and constrained by explicit unsupported cases (anchors, aliases, custom tags, multiple documents), which helps an agent decide feasibility. However, it never states when to prefer this tool over abox_json_format or abox_xml_json, nor any prerequisites, so routing guidance is only inferable.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 17 tool updatesv0.11.0
    • Addedabox_audio_extract
    • Addedabox_avif_convert
    • Addedabox_camera_session
    • Addedabox_heic_convert
    • Addedabox_live_status
    • Addedabox_live_stop
    • Addedabox_pdf_redact
    • Addedabox_share_session
    • Addedabox_video_compress
    • Addedabox_video_crop
    • Addedabox_video_frame
    • Addedabox_video_reverse
    • Addedabox_video_rotate_bake
    • Addedabox_video_timelapse
    • Addedabox_video_to_gif
    • Addedabox_voice_oncall_session
    • Addedabox_walkie_session
  2. 52 tool updatesv0.9.0
    • Addedabox_audio_edit
    • Addedabox_audio_trim
    • Addedabox_barcode_generate
    • Addedabox_base64
    • Addedabox_business_profile
    • Addedabox_code_format
    • Addedabox_code_read
    • Addedabox_dicom_inspect
    • Addedabox_dicom_render
    • Addedabox_document_scan
    • Addedabox_exif_edit
    • Addedabox_exif_inspect
    • Addedabox_file_hash
    • Addedabox_gif_create
    • Addedabox_gif_inspect
    • Addedabox_gif_split
    • Addedabox_gif_to_mp4
    • Addedabox_height_compare
    • Addedabox_id_photo
    • Addedabox_image_convert
    • Addedabox_image_data_uri
    • Addedabox_image_layout
    • Addedabox_image_redact
    • Addedabox_image_resize
    • Addedabox_image_stack
    • Addedabox_image_to_ico
    • Addedabox_image_trace
    • Addedabox_images_to_pdf
    • Addedabox_images_to_video
    • Addedabox_json_format
    • Addedabox_markdown_html
    • Addedabox_password_generate
    • Addedabox_pdf_compress
    • Addedabox_pdf_merge
    • Addedabox_pdf_protect
    • Addedabox_pdf_rotate
    • Addedabox_pdf_select
    • Addedabox_pdf_to_csv
    • Addedabox_pdf_unlock
    • Addedabox_pdf_watermark
    • Addedabox_qr_generate
    • Addedabox_receipt_extract
    • Addedabox_svg_to_image
    • Addedabox_text_diff
    • Addedabox_video_inspect
    • Addedabox_video_join
    • Addedabox_video_remux
    • Addedabox_video_rotate
    • Addedabox_video_trim
    • Addedabox_xml_format
    • Addedabox_xml_json
    • Addedabox_yaml_json
  3. 4 tool updatesv0.2.1
    • First observedabox_capabilities
    • First observedabox_exif_remove
    • First observedabox_image_compress
    • First observedabox_pdf_split

TDQS

A3.6/5.0

Scored across 73 tools

Disambiguation4/5

Most tools have clearly distinct resource/action targets, and descriptions carefully separate similar operations such as video_remux vs video_compress vs video_trim, or video_rotate vs video_rotate_bake. With 73 tools some overlap is inevitable, especially among video, image, PDF, and session helpers, but boundaries are usually explicit.

Naming Consistency4/5

All tool names use the abox_ prefix and lower snake_case, making the set predictable and easy to scan. Most follow a domain_action pattern, though a few conversion-style names such as images_to_pdf, yaml_json, and xml_json deviate slightly from a pure verb_noun convention.

Tool Count1/5

Seventy-three tools is far beyond an appropriate single-server surface, even for a broad local media/document toolkit. The count makes discovery, selection, and maintenance unwieldy, and many operations would be better grouped into narrower servers or more composite workflows.

Completeness4/5

The surface is unusually broad, covering video, audio, images, PDFs, metadata, QR/barcodes, text formats, OCR, and live sessions with many lifecycle operations. There are still minor gaps, such as general PDF text extraction, broader OCR, and some obvious image/video editing conveniences, but the core domains are well represented.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to process images locally via file paths—converting, resizing, removing backgrounds, smart cropping, upscaling, reading or stripping metadata, and batch processing—without files ever leaving the device.
    MIT
  • F
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to perform comprehensive PDF operations locally, including compression, text extraction, PII redaction, page organization, splitting, merging, watermarking, creation, and form filling, all without cloud uploads.
    7 npm
    -
  • A
    license
    B
    quality
    A
    maintenance
    Enables AI agents to perform local-first PDF processing entirely on-device, including OCR write-back to make scans searchable, unlocking and re-encrypting PDFs, splitting/merging/rotating pages, and compressing files, with no cloud calls or file uploads.
    25
    31 PyPI
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to perform local image operations such as circle cropping, cropping, resizing, compressing, converting, and inspecting images without uploading files or making network calls.
    7
    47 npm
    MIT