abox-tools
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| ABOX_BROWSER_PATH | No | Set to an existing browser executable path if needed. The compressor detects common browser installations; for image compression, an installed Edge, Chrome, or Chromium is required. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| abox_share_sessionA | 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. |
| abox_camera_sessionA | 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. |
| abox_walkie_sessionA | 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. |
| abox_voice_oncall_sessionA | 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. |
| abox_live_statusB | 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. |
| abox_live_stopB | 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. |
| abox_video_reverseA | 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. |
| abox_video_timelapseA | 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. |
| abox_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. |
| abox_video_rotate_bakeA | 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. |
| abox_audio_extractA | 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. |
| abox_video_compressA | 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. |
| abox_video_cropA | 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. |
| abox_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. |
| abox_pdf_redactA | 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. |
| abox_heic_convertA | 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. |
| abox_avif_convertA | 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. |
| abox_capabilitiesA | List supported local operations, limits, and installed browser availability. Does not read user files. |
| abox_image_compressA | 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. |
| abox_image_resizeA | 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. |
| abox_image_convertA | 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. |
| abox_pdf_splitA | 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. |
| abox_pdf_mergeA | 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. |
| abox_pdf_selectA | 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. |
| abox_pdf_rotateA | 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. |
| abox_images_to_pdfA | 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. |
| abox_exif_inspectA | 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. |
| abox_exif_removeA | 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. |
| abox_file_hashA | 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. |
| abox_pdf_compressA | 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. |
| abox_pdf_watermarkA | 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. |
| abox_image_to_icoA | 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. |
| abox_svg_to_imageA | 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. |
| abox_image_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. |
| abox_pdf_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. |
| abox_json_formatA | 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. |
| abox_base64A | 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. |
| abox_image_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. |
| abox_yaml_jsonA | 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. |
| abox_xml_formatA | 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. |
| abox_qr_generateA | 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. |
| abox_barcode_generateA | 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. |
| abox_text_diffA | 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. |
| abox_gif_inspectA | 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. |
| abox_gif_splitA | 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. |
| abox_image_traceA | 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. |
| abox_image_stackA | 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. |
| abox_password_generateA | 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. |
| abox_image_redactA | 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. |
| abox_code_readA | 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. |
| abox_gif_createA | 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. |
| abox_pdf_protectA | 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. |
| abox_pdf_unlockA | 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. |
| abox_audio_editA | 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. |
| abox_audio_trimA | 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. |
| abox_video_inspectA | 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. |
| abox_video_trimA | 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. |
| abox_video_joinA | 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. |
| abox_document_scanA | 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. |
| abox_id_photoA | 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. |
| abox_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. |
| abox_height_compareA | 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. |
| abox_receipt_extractA | 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. |
| abox_dicom_inspectA | 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. |
| abox_dicom_renderA | 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. |
| abox_images_to_videoA | 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. |
| abox_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. |
| abox_exif_editA | 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. |
| abox_video_rotateA | 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. |
| abox_video_remuxA | 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. |
| abox_code_formatA | 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. |
| abox_xml_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. |
| abox_markdown_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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 73 tools
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.
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.
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.
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.