Agent Mode
Every tool in this suite can be driven two ways: an MCP (Model Context Protocol) endpoint
for deterministic compute (QR payloads, text diff, text stats, the catalog), and
deep links with parameters that pre-load files and pre-set options in the browser tools.
Same privacy rules as always: no uploads, no accounts, nothing retained — the file rule is
enforced in code (?url= is same-origin only).
1 · MCP endpoint (compute)
Streamable-HTTP-style JSON-RPC 2.0. Stateless, no auth, no session. Protocol version 2025-06-18.
POST https://navigatorslab.com/tools/mcpHeaders:
Content-Type: application/json · Accept: application/json, text/event-streamnl_catalog
Every tool with URL, accepted files, agent parameters and a one-line description. Call this first.
qr_payload
WIFI / vCard / mailto / text → payload string with spec-correct escaping + a qr.html deep link. \ ; , : escaped properly.
text_diff · text_stats
LCS line diff (added/removed/unchanged) and words/reading-time/keywords — computed at the edge, nothing stored.
Client config (any MCP-compatible client): server URL https://navigatorslab.com/tools/mcp, transport http.
2 · Deep links (drive the browser tools)
Parameters are applied through a strict allow-list (validated, clamped, capped). ?url= loads a file
from this origin only (or a small data: URL) and feeds it through the tool's normal pipeline,
exactly like a drop. Pages show an “Agent mode” chip when parameters were applied.
| Page | Parameters | What happens |
|---|---|---|
| exif.html | ?url=<image> | loads + scans the image, shows/strips GPS & camera EXIF |
| metadata.html | ?url=<file> | inspects hidden metadata (JPG/PNG/PDF/DOCX/XLSX/PPTX) |
| shrink.html | ?url=<image>&format=webp&targetKB=300 | loads image; compression target + format pre-set |
| scan.html | ?url=<image> | opens the scan editor (straighten / levels / threshold / crop) |
| sign.html | ?url=<pdf>&date=1 | opens PDF for signing, date stamp pre-enabled |
| receipts.html | ?url=<image> | adds the receipt to the date-sorted book |
| ocr.html | ?url=<image>&autostart=1 | loads and immediately starts on-device OCR |
| qr.html | ?text=<payload>&ec=M&size=512 · ?url=<qr-image> | renders a QR from text, or loads an image to decode |
| audio.html | ?url=<audio> | loads the clip onto the waveform |
| rename.html | ?url=<image>&prefix=receipt-&start=1 | loads file(s); naming options pre-set |
| printprep.html | ?url=<image>&size=4x6&orient=portrait | loads image; print size + orientation pre-set |
| pdfpages.html | ?url=<pdf> | opens the page organizer |
| textdiff.html | ?a=<text-url>&b=<text-url> | fills both sides and compares |
| textstats.html | ?url=<text-url> | loads text and analyzes live |
| invoice.html | — (UI-driven) | state lives in the form, not the URL |
3 · Machine-readable indexes
llms.txt
The concise index — suite summary, MCP endpoint, every tool with its parameters — plus the standalone per-tool repo mirrors.
llms-full.txt
Complete integration guide: JSON-RPC examples, the full parameter table, worked recipes, verification guarantees.
tools.json
The hub's catalog — names, taglines, categories, keywords and the standalone GitHub repo for every tool — as data.
Each tool also has a standalone GitHub repository (MIT) — README + Pages site redirect to the canonical tool here. See the “Standalone repos” section of llms.txt.
Also served site-wide: https://navigatorslab.com/llms.txt (same file, root path).
Agent safety, by construction
The ?url= loader rejects every cross-origin URL in code — a crafted link can never make a tool
pull files from a third-party host. Parameters are allow-listed, clamped and size-capped. The MCP endpoint is
stateless compute with hard input caps and no storage. The same security suite that proves the pages never
phone home also runs on every release.