MCP endpoint
JSON-RPC 2.0 at POST /tools/mcp — initialize, tools/list, tools/call. Compute tools: catalog, QR payloads, text diff, text stats. Stateless, no auth, protocol 2025-06-18.
A lab bench of 24 free tools, games & projects — plus an MCP endpoint so AI agents can drive the whole suite. No uploads, no accounts, no trackers. The code runs on your device; your files never leave it.
Every tool is scriptable. Drive them from an AI agent with a Model Context Protocol endpoint, or with plain parameterized URLs — the same pages, the same privacy: files stay on the device running the browser.
JSON-RPC 2.0 at POST /tools/mcp — initialize, tools/list, tools/call. Compute tools: catalog, QR payloads, text diff, text stats. Stateless, no auth, protocol 2025-06-18.
Every page accepts a strict allow-list of URL params — qr.html?text=… renders instantly, shrink.html?url=…&targetKB=300 pre-loads and pre-sets. ?url= is same-origin only, enforced in code.
llms.txt + llms-full.txt at the site root, tools.json as data, and a full reference page — so an agent can discover and drive the whole suite without a human.
# list every tool the suite exposes to agents curl -s -X POST https://navigatorslab.com/tools/mcp \ -H 'Content-Type: application/json' \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | jq '.result.tools[].name'
Every claim below is asserted by an automated browser test on every push. These aren't marketing numbers; they're test results.
You: posting beach photos, unaware your phone wrote the hotel's coordinates into every JPEG.
GPS leak flagged red → stripped → output JPEG has no EXIF segment at all, byte-identical picture.
You: "Attachment exceeds maximum file size." The portal wants 2 MB; your scan is 16.
Lands under your exact target — and the downloaded file is checked against the limit by the test suite.
You: "Sign and send back tonight." No printer. No DocuSign subscription. 11pm.
The signature is flattened into the page — no editable field, just ink. The test asserts it's inside the PDF's resources.
You: twelve crumpled receipts, one expense spreadsheet, zero motivation.
Totals land in editable rows — fix anything OCR misread, export expenses.csv for Excel or Sheets.
You: a 3-page contract photographed crooked on a gray desk.
Crop, straighten, grayscale, stack → one clean PDF. The crop drag is regression-tested to land exactly where you drew it.
You: a guest asks for the Wi-Fi. Generator sites would log that password.
Round-trip proven: encode → export → decode returns the exact payload, character for character — tested in CI and on production.
You: "Is my go-to password already out there?" Checking online would mean handing the password to a stranger.
K-anonymous lookup against Have I Been Pwned: your browser hashes the password with SHA-1, sends only the first 5 characters, and matches the returned candidates in your tab. A hit names the exact breach count.
Check a password →The tools you know, minus the uploads, accounts, watermarks, and monthly fees. And unlike them, this suite is verified — every release runs a 150+ check gate that drops real files in and validates the downloaded bytes.
| Tool | Runs on | Network after load | Output verified by |
|---|---|---|---|
| 🛡️ Photo Privacy Kit | Byte-level EXIF parser | nothing | APP1-segment absence in output JPEG |
| 🔍 Metadata Checker | EXIF + PDF + OOXML readers | nothing | Cleaned files re-inspected |
| 🗜️ Image Shrinker | Canvas + binary search | nothing | 294 KB ≤ 300 KB target |
| 📄 Scan Cleaner | Canvas + pdf-lib | nothing | Page count + crop size in output |
| ✍️ E-Sign Pad | pdf-lib (+ pdf.js preview) | nothing | Signature image in PDF resources |
| 🧾 Receipts → PDF | EXIF + pdf-lib | nothing | 3 stamped pages, correct order |
| 🔢 Receipt OCR → CSV | Tesseract (self-hosted WASM) | nothing* | Line items parsed in CSV |
| 🔳 QR Studio | qrcode-generator + jsQR | nothing | Generate → decode round-trip matches |
| 📑 PDF Pages | pdf.js render + pdf-lib rebuild | nothing | Page order & rotations in rebuilt PDF |
| 🔬 Text Diff | LCS engine (unit-tested) | nothing | Word-level spans asserted |
| 📊 Text Stats | Stats engine (unit-tested) | nothing | Counts & keywords asserted |
| 🎧 Audio Trimmer | Web Audio + lamejs | nothing | WAV data-chunk = exact selection |
| 🧮 Invoice Generator | Canvas + pdf-lib | nothing | $408.00 total in exported PDF |
| 🗂️ Batch Rename | EXIF + JSZip | nothing | Renamed entries inside ZIP |
| 🖨️ Print-Shop Prep | Canvas + pdf-lib | nothing | MediaBox = 306 pt (4.25 in) |
* OCR downloads the Tesseract engine and English model from this same site on first use — after that it's cached and fully offline. No third party ever sees your images.
In your browser tab, on your device. Each tool is a static page with JavaScript that reads your file into memory, processes it with Web APIs (Canvas, Web Audio, WASM), and offers the result as a download. Close the tab and it's gone.
No, and no. There is no upload endpoint, no queue, no storage bucket — nothing that could receive a file. The security suite proves this on every release: it loads every page, watches every network request, and asserts that nothing goes anywhere but this site — except one deliberate, user-initiated exception: the Password Breach Checker sends 5 characters of your password's SHA-1 hash to Have I Been Pwned only when you press Check, so it can search 800M+ breached credentials. Your password itself never leaves the tab.
No catch, no tier, no watermark, no "upgrade to unlock bigger files." MIT licensed — take the code and self-host it if you like. The only limit is your device's memory.
Yes — after your first visit, the service worker precaches every page and engine (including the 24 MB OCR model). A test literally turns the network off and runs a tool to prove it.
NavigatorsLab — a lab for local-first, private-by-default software. The suite's big sibling is PDF Studio, a full in-browser PDF editor.
These are static pages. There is no server that could receive your files — no upload endpoint, no queue, no storage bucket, no analytics, no cookies, no accounts. We keep no attachments and no user information, ever. Open devtools → Network, load any tool, and watch it stay silent after the initial load. The single exception is deliberate and user-initiated: the Password Breach Checker sends only the first 5 characters of your password's SHA-1 hash to Have I Been Pwned when you press Check — the password itself never leaves your device.