Search / com.johnsessentials/johns-essentials
John's Essentials
R0· no sign-in144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth).
v1.2.0 · active · website · descriptor JSON · versions
Search / com.johnsessentials/johns-essentials
R0· no sign-in144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth).
v1.2.0 · active · website · descriptor JSON · versions
{
"mcpServers": {
"johns-essentials": {
"type": "http",
"url": "https://api.johnsessentials.com/mcp/messages",
"headers": {
"Authorization": "Bearer ${JOHNS_ESSENTIALS_TOKEN}"
}
}
}
}claude mcp add --transport http johns-essentials https://api.johnsessentials.com/mcp/messages --header "Authorization: Bearer ${JOHNS_ESSENTIALS_TOKEN}"[mcp_servers.johns-essentials]
url = "https://api.johnsessentials.com/mcp/messages"
bearer_token_env_var = "JOHNS_ESSENTIALS_TOKEN"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"johns-essentials": {
"type": "remote",
"url": "https://api.johnsessentials.com/mcp/messages",
"enabled": true,
"headers": {
"Authorization": "Bearer {env:JOHNS_ESSENTIALS_TOKEN}"
}
}
}
}{
"mcpServers": {
"johns-essentials": {
"type": "http",
"url": "https://api.johnsessentials.com/mcp/messages",
"headers": {
"Authorization": "Bearer ${JOHNS_ESSENTIALS_TOKEN}"
}
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=johns-essentials&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vYXBpLmpvaG5zZXNzZW50aWFscy5jb20vbWNwL21lc3NhZ2VzIiwiaGVhZGVycyI6eyJBdXRob3JpemF0aW9uIjoiQmVhcmVyICR7Sk9ITlNfRVNTRU5USUFMU19UT0tFTn0ifX0%3D"
}{
"servers": {
"johns-essentials": {
"type": "http",
"url": "https://api.johnsessentials.com/mcp/messages",
"headers": {
"Authorization": "Bearer ${JOHNS_ESSENTIALS_TOKEN}"
}
}
}
}{
"mcpServers": {
"johns-essentials": {
"httpUrl": "https://api.johnsessentials.com/mcp/messages",
"headers": {
"Authorization": "Bearer ${JOHNS_ESSENTIALS_TOKEN}"
}
}
}
}extensions:
"johns-essentials":
enabled: true
name: "johns-essentials"
type: streamable_http
uri: "https://api.johnsessentials.com/mcp/messages"
headers:
"Authorization": "Bearer ${JOHNS_ESSENTIALS_TOKEN}"
timeout: 300
Placeholders to fill from your own secret store: ${JOHNS_ESSENTIALS_TOKEN}. The registry never accepts secret values.
protocol.modernsupports 2026-07-28 (server/discover)protocol.statelessanswers without a sessionprotocol.transportstreamable HTTPprotocol.list_ttltools/list carries no ttlMs, so clients re-fetch itauth.prm, auth.as_metadata, auth.cimdno remote uses OAuthauth.secret_in_urlno templated URLtools.descriptionsevery tool has a descriptiontools.description_lengthdescriptions are concisetools.schemasevery tool has an object input schematools.annotations153 of 153 tools declare readOnlyHint or destructiveHinttools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: pdf_compress (idempotentHint); pdf_split (idempotentHint); pdf_protect (idempotentHint); …tools.token_costabout 50,861 tokens to load every tool, a large share of an agent's contexttools.api_dumptools are not a one-to-one API dumpstability.changes116 tool changes in 30 daysstability.rug_pull2 tools kept their name but changed most of their description in 30 days; review before trusting themdeps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI packageemail_filechangedinput schemaphoto_rounded_cornerschangedinput schemaphoto_add_borderchangedinput schemaphoto_meme_generatorchangedinput schemaphoto_image_splitterchangedinput schemaphoto_image_overlaychangedinput schemaphoto_shadow_adderchangedinput schemaphoto_face_blurchangedinput schemaphoto_watermarkchangedinput schemaphoto_cropchangedinput schemaShowing the latest 10. Full history: list_changes · trend: quality JSON.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-97% ~updated-44d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://api.johnsessentials.com/mcp/messages streamable-http | none | yes | 97% | 526 ms | 2026-07-28, 2025-06-18 | 2026-10-19 |
analyze_audioread-only | Audio Analyzer — Analyse an audio file: duration, sample rate, bit rate, channels, codec, waveform data. [category: analyze] |
analyze_color_paletteread-only | Color Palette Extractor — Extract the dominant colour palette from an image. [category: analyze] |
analyze_csvread-only | CSV Analyzer — Analyse a CSV file: row/column count, data types, null counts, min/max/mean per column. [category: analyze] |
analyze_duplicate_detectorread-only | Duplicate Detector — Identify duplicate or near-duplicate files in a batch upload using perceptual hashing. [category: analyze] |
analyze_encoding_detectorread-only | Encoding Detector — Detect the character encoding of a text or HTML file. Use when accented letters, apostrophes or quotation marks arrive as garbled symbols: it identifies which character set the file was saved in (UTF-8, Windows-1252, ISO-8859-1, UTF-16 and so on). It REPORTS the encoding only — it does not convert or rewrite the file. [category: analyze] |
analyze_fileread-only | File Analyzer — Analyse a file and return type, encoding, size, MIME type, magic bytes, and structure summary. [category: analyze] |
analyze_file_diffread-only | File Diff — Show a line-by-line diff between two text files (file_a + file_b) or two pasted texts (text_a + text_b). Provide one complete pair. [category: analyze] |
analyze_font_detectorread-only | Font Detector — Detect fonts used in a PDF or DOCX document. Images are not supported. [category: analyze] |
analyze_grammar_checkread-only | Grammar Checker — Hybrid LanguageTool + Grok grammar checker with rule citations, style-guide awareness (APA/MLA/Chicago/AP/IEEE), dialect enforcement (US/UK/CA/AU), and per-issue severity. [category: analyze] |
analyze_hashread-only | Hash Generator (File) — Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of an uploaded file. [category: analyze] |
analyze_image_qualityread-only | Image Quality Analyzer — Measure sharpness, noise level, compression artefacts, and BRISQUE quality score of an image. [category: analyze] |
analyze_image_similarityread-only | Image Similarity — Compute a perceptual similarity score between two images (pHash distance). Takes two separately-named uploads: 'file_a' and 'file_b'. [category: analyze] |
analyze_json_xml_validator | JSON/XML Validator — Check that text is valid JSON or XML and tidy its layout. It answers valid true or false, and a document that is not valid is still an answer, not a failed step, so the steps after it run either way. To stop a workflow on a bad document, add an If/Else step that checks {{step_N.valid}} equals true, where N is this step's number. Then, on each step that should run only for a valid document, set Run when to true and add the If/Else step's number to its Depends On. This step passes no file on, so a step after it that needs the document must take its file from the step before this one. [category: analyze] |
analyze_link_extractorread-only | Link Extractor — Extract all hyperlinks from a PDF or HTML file, or from pasted text. Other file types are scanned as raw text. [category: analyze] |
analyze_metadataread-only | Metadata Viewer — Extract and display all metadata from a file (EXIF, PDF info, document properties, audio tags). [category: analyze] |
analyze_pdf_inspectorread-only | PDF Inspector — Deep inspection of a PDF: page count, fonts used, annotations, form fields, embedded files. [category: analyze] |
analyze_readabilityread-only | Readability Scorer — Calculate Flesch Reading Ease and Flesch-Kincaid Grade Level for a text. [category: analyze] |
analyze_sslread-only | SSL Checker — Check an SSL certificate for a hostname: expiry, issuer, validity, cipher suite. [category: analyze] |
analyze_videoread-only | Video Inspector — Inspect a video: duration, resolution, frame rate, codec, audio tracks, bitrate. [category: analyze] |
analyze_word_countread-only | Word Counter — Count words, characters, sentences, paragraphs, and reading time in a text or uploaded document (.txt/.pdf/.docx). [category: analyze] |
analyze_word_frequencyread-only | Word Frequency Analyzer — Analyse word frequency distribution in a text or document file. [category: analyze] |
chatwithyourpdfread-only | Chat With Your PDF — Read the text of the user's document — PDFs first and foremost, plus TXT/CSV/Markdown/JSON — so you can chat about it: answer questions, summarize it, or use facts from it in later steps. Business plan only. Returns up to max_chars characters. For Word files: convert with word_to_pdf first, then chat with the PDF. [category: content] [requires the business plan] |
convert_archive | Archive Converter — Convert between archive formats. Input: ZIP, RAR, 7Z, GZ/TAR.GZ, TAR.BZ2, TAR.XZ, TAR, CAB, ISO — recognized by filename extension or file signature, so misnamed uploads work. Output: ZIP, TAR, TAR.GZ, TAR.BZ2, TAR.XZ, 7Z. [category: convert] |
convert_batch | Batch Converter — Convert many files in one request and download a ZIP of the results. Auto-target rules pick a sensible output format per file (docx→pdf, heic→jpg, mov→mp4, etc.) or specify a global target like 'pdf' or a per-extension override map. Free tier supports up to 5 files; Business tier up to 50. [category: convert] |
convert_chain | Conversion Chain — Run a 1-5 step conversion pipeline in one job, e.g. docx → pdf → epub. Each step's engine is auto-picked from the conversion graph. Input format comes from the 'from' field when given, else magic-byte detection — ALWAYS pass 'from' for text-based inputs (csv, md, html, json): they have no magic bytes and detect as plain txt. Business tier only. [category: convert] [requires the business plan] |
convert_contact | Contact Converter — Convert contact/calendar/email formats: vCard↔CSV, vCard→XLSX (vcf to excel), ICS→JSON/CSV, MSG→EML, EML→PDF. [category: convert] |
convert_data | Data Converter — Convert a data file between formats (JSON, NDJSON/JSONL, CSV, TSV, XML, YAML, TOML, INI). Upload the data file and pick a target format; the result comes back as a downloadable file (so it chains in workflows). Inline text is also accepted via a JSON-body 'input' string instead of a file. [category: convert] |
convert_document | Document Converter — Office & document converter — DOCX/DOC/ODT/RTF/XLSX/XLS/ODS/CSV/PPTX/PPT/ODP/HTML/EPUB/TXT → PDF plus office round-trips (csv→xlsx, docx→odt, epub→pdf) via LibreOffice; MARKDOWN → pdf/docx/html/epub/txt via pandoc with real GFM semantics (headings, lists, tables, code fences); and DOCX/HTML/PDF → MARKDOWN (the LLM-ingestion direction — turn a document into clean GFM an agent can read; PDF via text-layer extraction); plus Jupyter notebooks (.ipynb) → pdf/html/docx/md via pandoc. Pass 'from' so the converter knows the source format. For images/audio/video use convert_file; for data-text transforms use convert_data. Capability envelope: a PDF source extracts to text/markdown only (to=md) — for editable output from a PDF use pdf_to_word / pdf_to_excel / pdf_to_text / pdf_to_images. Office conversions are same-category only (Word↔Word, Sheet↔Sheet, Slides↔Slides) plus any→pdf; cross-category conversions (e.g. Word→slides, Sheet→Word) are not supported. [category: convert] |
convert_ebook | eBook Converter — Convert ebooks between formats with calibre: mobi, azw3, fb2, lit and pdf → EPUB, plus epub → mobi/azw3 for older devices. EPUB is the format modern Kindles accept for send-to-device, so →epub is the recommended direction. DRM-protected books cannot be converted. pdf→epub reflows fixed pages, so quality varies with layout complexity; epub→pdf is handled by convert_document (LibreOffice). [category: convert] |
convert_file | Universal File Converter — Convert a file between formats: image↔image (jpg/png/webp/bmp/tiff/gif/avif/ico, plus heic/svg/psd as inputs), audio↔audio (mp3/wav/ogg/opus/flac/aac/m4a/wma/aiff, plus alac=Apple Lossless delivered as .m4a), video↔video/GIF (Business gate on some edges) plus legacy flv/wmv/3gp/mpg/vob/ts/m2ts → mp4, extract audio from video (mp4/mov/mkv/webm/avi → mp3/wav/aac/m4a/ogg/flac/opus/aiff/alac), subtitles (srt↔vtt, and srt/vtt→txt), DOC/DOCX/TXT→PDF, image→PDF, comic archive CBZ→PDF. Office/document conversions (xlsx, pptx, csv→xlsx, epub, html) live in convert_document; archives in convert_archive; data formats in convert_data. [category: convert] |
convert_geo | GPS & Map Converter — Convert between GPX, KML, KMZ and GeoJSON — the GPS-track and mapping formats used by Garmin, Strava, Google Earth and every GIS tool. Track segments, per-point timestamps, elevations and polygon holes all survive the trip. Anything that cannot survive (a polygon becoming a GPX track, an unlocated feature) is reported in the X-Conversion-Notes header rather than dropped quietly; pass strict=true to refuse instead. [category: convert] |
convert_jpg_to_pdf | JPG to PDF — Convert one or more JPG/PNG images to a PDF document. [category: convert] |
convert_parquet | Parquet Converter — Convert Apache Parquet to CSV, TSV, JSON, NDJSON or Excel — and back. Types are preserved in both directions: numbers stay numbers in JSON, blank cells become real nulls in Parquet, and identifier columns like '01924' stay text instead of losing their leading zero. Flat schemas only; nested or repeated columns are reported rather than silently flattened. [category: convert] |
convert_sqlite | SQLite Converter — Export a SQLite database (.db/.sqlite) to CSV, JSON or Excel. A database holds many tables, so the output adapts: CSV gives one file per table (zipped when there are several), JSON gives rows as objects (keyed by table when there are several), and Excel gives ONE workbook with one worksheet per table. Pass an optional 'table' to export just one. [category: convert] |
convert_text | Text Converter — Convert text/data formats: Markdown↔HTML, CSV↔JSON, JSON↔XML/YAML, Base64 and URL encode/decode. Takes 'text' + 'from' + 'to' — there is no 'conversion_type' field. [category: convert] |
convert_unit_convert | Unit Converter — Convert between units of measurement: length, weight, temperature, volume, area, speed, time, and data sizes. [category: convert] |
convert_url_to_pdf | Webpage to PDF — Convert a live web page (URL) to PDF. Fetches the page and every asset server-side through an SSRF-guarded fetcher, inlines them, and renders offline — pass a JSON-body 'url'. JavaScript is NOT executed (static rendering), so SPAs may render sparsely. [category: convert] |
convert_video | Video Converter — Convert a video so it PLAYS or IMPORTS where it currently will not: a camera, phone or camcorder recording that your editing software, media player, website or social platform refuses to accept, open or upload. Converts between mp4, mov, webm, mkv, avi, and animated GIF with codec/resolution/bitrate control and TikTok/Reels/Shorts/Twitter/WhatsApp presets. Also converts legacy formats (flv, wmv, 3gp, mpg, vob, ts, m2ts) to mp4. Free tier covers mp4/mov/webm at ≤720p; mkv, avi, gif, 1080p+ and AV1 require Business. [category: convert] |
convert_word_to_pdf | Word to PDF — Convert a Word document (.docx, .doc) to PDF using LibreOffice. [category: convert] |
data_to_file | Save as File — Write the result of an earlier step to a real, downloadable file: .txt, .csv, .json or .md. Use after any step that produces text or data rather than a file — Color Palette Extractor, Password Generator, Photo to Text (OCR), EXIF Viewer, Scrape Page, Word Frequency, Describe Image, PDF to Text — so the result can be downloaded, emailed, zipped or converted. A list of values saved as CSV becomes a spreadsheet with a header row. [category: utility] |
describe_imageread-only | Describe Image — Look at an image with a vision model and answer a question about it — what it shows, whether it's blurry or usable, visible text, etc. Business plan only. [category: content] [requires the business plan] |
drive_upload | Save to Google Drive — Save a finished file into the signed-in user's own Google Drive. Use as the last step of a workflow when the user asks for the result to be put in, saved to, or uploaded to their Drive. Needs their Google account to be connected on the Integrations page. Only ever writes: it cannot read, list or search anything already in their Drive. [category: utility] [requires the starter plan] |
email_file | Email My File — Email a finished file to the user themselves, with the file attached. It goes to the Google account they connected, so it appears in both their Sent folder and their inbox. The recipient is ALWAYS the current user — this tool cannot email anyone else and cannot send custom or user-authored content. Use ONLY when the user explicitly asks to have a result emailed to them. [category: utility] |
esign_place | PDF E-Signature — Place signature, initial, date or text fields onto a PDF — draw or type a signature — and (Pro+) append a cryptographic ed25519 audit trail. Free tier: 3 signed documents per month. [category: sign] |
esign_prepare | E-Sign: Prepare — Return page count and per-page point dimensions for a PDF so signature fields can be positioned by the editor. [category: sign] |
files_unzip | Open Archive — Open a .zip archive and hand the files inside it to the next step, as a list. Use when an earlier step produced a ZIP (PDF Thumbnails, PDF to Images, Split PDF, Extract Frames, the batch converters) and the next step works on the individual files. Converts nothing. Up to 200 files. [category: utility] |
files_zip | Zip Files — Bundle several files — uploads or the results of earlier steps — into ONE .zip archive, unchanged. Use when the user says zip / bundle / archive / put them all in one file, or wants several results delivered as one attachment. Converts nothing (for converting many files use convert_batch). 1-50 files. [category: utility] |
generate_ascii_art | ASCII Art Generator — Convert text or an image to ASCII art. Mode 'text' (the default) draws the words in 'text'; mode 'image' converts 'file'. With no text and a file attached, the file is converted in either mode. [category: generate] |
generate_barcode | Barcode Generator — Generate a barcode (Code128, EAN-13, DataMatrix, PDF417, etc.) as a PNG image. [category: generate] |
generate_business_card | Business Card Generator — Generate a printable business card (PDF or PNG) from name, job title, company, and contact details. [category: generate] |
generate_certificate | Certificate Generator — Generate a printable certificate of achievement or completion as PDF or PNG. [category: generate] |
generate_color_palette | Color Palette Generator — Build a set of colours that work together, starting from one colour you choose. The mirror image of the Color Palette Extractor, which pulls a palette out of a picture you already have. [category: generate] |
generate_favicon | Favicon Generator — Generate a favicon set (ico + png sizes) from a source image, with optional rounded corners. This is the tiny icon a browser shows in the tab, beside a bookmark, and on a phone home screen — without one, visitors see a blank page symbol next to your site's name. [category: generate] |
generate_gradient | Gradient Generator — Blend two or more colours into a PNG image. Unlike the web page, which writes a line of CSS, this produces a real picture a later step can composite or stamp on. [category: generate] |
generate_hash | Hash Generator — Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of text (or an uploaded file). Always returns all four — there is no algorithm selection and bcrypt is not supported. [category: generate] |
generate_lorem_ipsum | Lorem Ipsum Generator — Generate lorem ipsum placeholder text by word count or paragraph count. [category: generate] |
generate_password | Password Generator — Generate a cryptographically secure random password with configurable length and character sets. [category: generate] |
generate_placeholder_image | Placeholder Image — Generate a placeholder image at any dimension with custom background colour and label text. [category: generate] |
generate_qr_code | QR Code Generator — Generate a QR code from a URL, text, or vCard data as a PNG image. [category: generate] |
generate_signature | Signature Generator — Write a name out in a handwriting style and return it as a PNG with a see-through background, so a later step can stamp it onto a PDF. [category: generate] |
generate_uuid | UUID Generator — Generate unique identifiers — UUID v4 or v7, ULID, Nano ID, or plain random hex. Exists so a workflow gets real identifiers instead of asking a language model to invent them. [category: generate] |
media_add_watermark | Video Watermark — Overlay a text watermark onto a video using FFmpeg, with position and opacity control. [category: media] |
media_compress_video | Compress Video — Reduce video file size using H.264 re-encoding with FFmpeg (quality presets high/medium/low). [category: media] |
media_extract_audio | Extract Audio — Extract the audio track from a video file as MP3, WAV, OGG, FLAC, or AAC. [category: media] |
media_extract_frames | Extract Frames — Extract frames from a video at a specified frame rate as JPEG images (returned as a ZIP). [category: media] |
media_merge_audio | Merge Audio — Concatenate multiple audio files (at least 2) into one MP3 using FFmpeg. [category: media] |
media_mute_video | Mute Video — Remove the audio track from a video file. [category: media] |
media_trim_audio | Trim Audio — Trim an audio file to a specified start and end time using FFmpeg. [category: media] |
media_trim_video | Trim Video — Trim a video clip to a specified start and end time without re-encoding. [category: media] |
octopus_deletedestructive | Delete a file. Default behaviour is a soft delete (the file goes to the trash and can be restored). Pass `hard: true` to permanently remove a file that's ALREADY in the trash — this also reclaims storage quota. [requires a signed-in account] |
octopus_listread-only | List My Files — List the user's own saved files (their file storage), newest first, with an optional folder filter. Returns file names, types, folders, and IDs — never file contents. Use it to see what files the user has or to find which one they mean. [category: files] |
octopus_make_folder | Create Folder — Create a folder (and any missing parent folders) in the user's file storage. [category: files] |
octopus_mkdir | Create a folder. Any missing parent folders along the path are auto-created. Idempotent — creating an existing folder is a no-op. [requires a signed-in account] |
octopus_move | Move a file to a different folder in Octopus, optionally renaming it at the same time. Folders are auto-created if they don't exist. This is a metadata-only change — no bytes are copied. [requires a signed-in account] |
octopus_move_file | Move File to Folder — Move one of the user's files — an upload or a result from a previous step — into a folder of their file storage, optionally renaming it. Creates the folder if it doesn't exist. Use when the user says save / put / move / file this into a folder. [category: files] |
octopus_readread-only | Read the contents of a file the user has stored in Octopus. Small files (<=2 MiB) come back inline as base64 (or UTF-8 text for text/* MIMEs). Larger files return a short-lived presigned download URL the agent can fetch. [requires a signed-in account] |
octopus_searchread-only | Search the user's Octopus files by filename, tag, or folder. Pass `query` as a substring to match against names; combine with `tag:` or `in:/path/` filter syntax (e.g. `query: invoice tag:tax in:/Finance/`). Returns up to `limit` matching files. [requires a signed-in account] |
octopus_search_metaread-only | Find My Files — Find the user's saved files by name, tag, or folder (metadata only — does NOT read file contents). Use it to resolve a reference like 'the invoice from this morning' or 'my Q1 report' to a real file. Returns matching names, types, folders, and IDs. [category: files] |
octopus_write | Save a new file the agent has produced (a report, a summary, generated code, etc.) into Octopus. If `path` is omitted the file lands in `/agent/{session}/` — the convention that keeps agent output separate from user uploads. Provide ONE of `content_text` (UTF-8) or `content_base64` (binary). [requires a signed-in account] |
pdf_compress | Compress PDF — Reduce PDF file size while preserving readability. Quality presets: light (300 DPI), balanced (150 DPI, default), mobile (96 DPI), maximum (72 DPI). Also supports metadata-only stripping and a target-size mode. [category: pdf] |
pdf_crop | Crop PDF — Crop the visible area of all pages in a PDF by setting new margins. Margins are in PostScript points; EVERY omitted edge defaults to 36pt — send 0 to leave an edge uncropped. [category: pdf] |
pdf_delete_pages | Delete Pages — Remove specific pages from a PDF. [category: pdf] |
pdf_excel_to_pdf | Excel to PDF — Convert Excel spreadsheets (.xlsx / .xls / .csv / .ods) to PDF with fit-to-page, orientation control, paper size, sheet selection, repeat header rows, custom header/footer, PDF/A output, password protection, watermark, and per-sheet split mode. Hybrid pipeline: excelize preprocesses the xlsx (page layout, sheet visibility) then LibreOffice converts. [category: pdf] |
pdf_excel_to_pdf_batch | Excel to PDF (Batch) — Apply the same Excel-to-PDF configuration to up to 20 spreadsheets. Returns a ZIP with per-file subfolders. [category: pdf] |
pdf_excel_to_pdf_inspectread-only | Excel to PDF (Inspect) — Non-destructive workbook scan: returns per-sheet row/column counts, merged cells, PrintArea presence, and the auto-orientation heuristic's decision per sheet. Used by the frontend to preview before converting. [category: pdf] |
pdf_extract_pages | Extract Pages — Pull a chosen range of pages out of a PDF into a new PDF. To split a document into single pages, fixed chunks, or odd and even pages, use Split PDF instead. [category: pdf] |
pdf_file_inforead-only | PDF File Info — Detailed info about a PDF: size, pages, version, encryption. [category: pdf] |
pdf_flatten | Flatten PDF — Flatten PDF forms and annotations into static page content. Supports granular modes (annotations-only, forms-only, all), page ranges, signature-aware handling, link preservation, watermark stamping, image compression, PDF/A archival output, OCR for scanned inputs, and a ZIP bundle that exports form values + annotation metadata alongside the flattened file. [category: pdf] |
pdf_flatten_batch | Flatten PDFs (Batch) — Apply the same flatten configuration to up to 20 PDFs in one request. Returns a ZIP with each flattened file (and per-file error entries on failure). [category: pdf] |
pdf_get_metadataread-only | Get PDF Metadata — Read the metadata fields of a PDF: Title, Author, Subject, Keywords, Producer, Creator. [category: pdf] |
pdf_grayscale | Grayscale PDF — Convert a PDF to grayscale, removing all colour information. [category: pdf] |
pdf_header_footer | Add Header/Footer — Add custom text headers and/or footers to every page of a PDF, with optional page numbers. At least one of header, footer, or pageNumbers (other than 'none') is required. [category: pdf] |
pdf_html_to_pdf | HTML to PDF — Convert an HTML file (.html or .htm) to PDF using LibreOffice. File upload only — URLs are not fetched. [category: pdf] |
pdf_images_to_pdf | Images to PDF — Combine multiple images (JPG, PNG, TIFF) into a single PDF document. [category: pdf] |
pdf_interleave | Interleave PDFs — Interleave pages from two PDFs alternately (useful for double-sided scans). [category: pdf] |
pdf_merge | Merge PDFs — Combine multiple PDF files (at least 2) into a single document in the order provided. Supports per-file page selection, blank separator pages, bookmarks, and output metadata. [category: pdf] |
pdf_ocr | OCR PDF (Make Searchable) — Make a scanned PDF searchable and selectable by adding an invisible OCR text layer over the page images — the pages look identical, but the text becomes findable, copyable, and indexable. Uses ocrmypdf (Tesseract + Ghostscript); already-searchable pages are skipped, so it is safe to run on mixed documents. This CREATES a text layer — to EXTRACT text that already exists, use pdf_to_text instead. [category: pdf] [requires the starter plan] |
pdf_page_countread-only | PDF Page Count — Get the total number of pages in a PDF. [category: pdf] |
pdf_page_numbers | Add Page Numbers — Add page numbers to a PDF at a specified position (top/bottom, left/center/right). [category: pdf] |
pdf_pptx_to_pdf | PowerPoint to PDF — Convert a PowerPoint presentation (.pptx, .ppt) to PDF using LibreOffice. [category: pdf] |
pdf_protect | Password-Protect PDF — Add a password to a PDF to prevent unauthorised opening or printing. [category: pdf] |
pdf_remove_metadata | Remove PDF Metadata — Strip all metadata (author, title, keywords, etc.) from a PDF for privacy. [category: pdf] |
pdf_remove_watermark | Remove PDF Watermark — Attempt to remove an existing watermark layer from a PDF. [category: pdf] |
pdf_reorder | Reorder PDF Pages — Reorder the pages of a PDF by supplying the desired page sequence. [category: pdf] |
pdf_repair | Repair PDF — Attempt to repair a corrupted or malformed PDF using Ghostscript. [category: pdf] |
pdf_reverse | Reverse Page Order — Reverse the page order of a PDF (last page becomes first). [category: pdf] |
pdf_rotate | Rotate PDF — Rotate pages of a PDF by 90, 180, or 270 degrees — all pages or specific page numbers. [category: pdf] |
pdf_rtf_to_pdf | RTF to PDF — Convert an RTF document to PDF using LibreOffice. [category: pdf] |
pdf_set_metadata | Set PDF Metadata — Write or update metadata fields (Title, Author, Subject, Keywords) in a PDF. Fields are soft-verified after writing (mismatches are logged, not failed). At least ONE of title/author/subject/keywords must be provided or the request is rejected. [category: pdf] |
pdf_split | Split PDF — Split a PDF by page range, into individual pages, by fixed chunk size, or into even/odd pages. [category: pdf] |
pdf_thumbnails | PDF Thumbnails — Generate thumbnail preview images for each page of a PDF. [category: pdf] |
pdf_to_excel | PDF to Excel — Extract tables from PDFs into XLSX / CSV / TSV / JSON. Uses tabula-java (lattice + stream modes) with LibreOffice as fallback. Supports page ranges, table selection, sheet strategy (per-table/per-page/single), OCR for scanned PDFs (Starter+), JSON output (Starter+), and a non-destructive inspect endpoint that reports row/col counts plus ragged/sparse confidence flags. [category: pdf] |
pdf_to_excel_batch | PDF to Excel (Batch) — Apply the same PDF-to-Excel configuration to up to 20 PDFs. Returns a ZIP with per-file subfolders. [category: pdf] |
pdf_to_excel_inspectread-only | PDF to Excel Inspector — Non-destructive scan of a PDF's tables before converting: per-table row/column counts, confidence flags, warnings. [category: pdf] |
pdf_to_images | PDF to Images — Rasterize PDF pages to PNG / JPG / WEBP / TIFF (and AVIF, Starter+). Supports page ranges, quality/DPI controls, grayscale/mono color modes, transparent output, custom background color, max-dimension cap, area crop, text watermark, custom filename patterns, contact-sheet/filmstrip tile mode (Starter+), preset profiles (web/print/email/archive), and JSON / MinIO URL response modes. [category: pdf] |
pdf_to_images_batch | PDF to Images (Batch) — Apply the same rasterization configuration to up to 20 PDFs. Returns a ZIP with a subfolder per input file. [category: pdf] |
pdf_to_pdfa | PDF to PDF/A (Archival) — Convert a PDF to PDF/A-2b, the ISO archival profile required for long-term storage and by many legal, government and enterprise records systems. Embeds fonts and colour information so the document renders identically decades from now. Uses Ghostscript. If a PDF uses features that cannot be embedded (e.g. unlicensed fonts) the conversion fails honestly rather than returning a non-conformant file. [category: pdf] |
pdf_to_text | PDF to Text — COPY THE WORDS OUT of a PDF: get the wording, sentences and paragraphs as plain text you can paste into an email, a document or a spreadsheet. Extract the text that is already inside a PDF and return it as a plain .txt file. Reads the PDF's existing text layer using pdftotext with a Ghostscript txtwrite fallback — it does NOT run OCR. A scanned or photographed document has no text layer, so this tool refuses it with a 422 naming pdf_ocr rather than returning an empty file; run pdf_ocr first to add a searchable text layer, then extract. Mixed documents still succeed: pages that yielded no text are reported in the X-Conversion-Notes response header instead of being dropped silently. [category: pdf] |
pdf_to_word | PDF to Word — Convert a PDF to an editable Word document (.docx) using LibreOffice. [category: pdf] |
pdf_txt_to_pdf | TXT to PDF — Convert a plain text file to a formatted PDF document. [category: pdf] |
pdf_unlock | Unlock PDF — Remove password protection from a PDF (you must supply the current password). [category: pdf] |
pdf_watermark | Add PDF Watermark — STAMP or watermark a PDF: overlay text or an image across every page (or selected pages) — the tool for stamping DRAFT, CONFIDENTIAL, PAID, APPROVED, COPY or any wording onto a document, marking pages, branding them, or adding a logo overlay. Watermark type is chosen by the 'mode' field. [category: pdf] |
photo_add_border | Add Border — Add a solid-colour border around an image, keeping the format it arrived in. [category: photo] |
photo_bg_remover | Background Remover — Cut out the subject and remove the background from an existing photo, producing a transparent PNG (or a solid fill color). Edits a user-supplied image; does not generate new imagery. [category: photo] |
photo_collage | Photo Collage — Arrange 2-16 images into a smart-cropped collage with aspect-ratio-aware layouts, named magazine templates, or legacy NxM grids. Output: JPG, PNG, WebP, AVIF. [category: photo] |
photo_collage_animated | Animated Photo Collage — Animated/video collage (MP4/GIF/WebM) with Ken Burns motion. Business-only. [category: photo] [requires the business plan] |
photo_collage_mosaic | Photo Mosaic — Render one hero photo as a mosaic of many small tile photos, color-matched per region. Business-only. Takes two separately-named uploads: 'target_image' (exactly 1) and 'tile_files[]' (20-1000). [category: photo] [requires the business plan] |
photo_color_adjuster | Color Adjuster — Adjust brightness, contrast, and saturation of an image. [category: photo] |
photo_compress | Compress Image — Reduce image file size using lossy or lossless compression. Supports JPEG quality setting and target-size mode. [category: photo] |
photo_compress_to_size | Compress Image to Size — Compress an image to hit a target file size in KB. [category: photo] |
photo_crop | Crop Image — Crop an image to a specified region (x, y, width, height) in pixels. [category: photo] |
photo_editor | Photo Editor — Apply a single named filter to an image: grayscale, sepia, blur, sharpen, negate, or vignette. [category: photo] |
photo_exif_viewerread-only | EXIF Viewer — Extract and display all EXIF metadata from a photo including camera, GPS, and settings. [category: photo] |
photo_face_blur | Face Blur — Automatically detect and blur faces in a photo for privacy protection. [category: photo] |
photo_face_detectread-only | Face Detect — Detect faces in an image and return bounding boxes. [category: photo] |
photo_flip_rotate | Flip / Rotate Image — Flip an image horizontally or vertically, rotate it by 90/180/270, or rotate by a custom angle. [category: photo] |
photo_format_converter | Image Format Converter — Convert an image between formats: JPG, PNG, WebP, TIFF, BMP, GIF, AVIF. [category: photo] |
photo_image_diff | Image Diff — Compare two images and highlight the differences visually. Takes two separately-named uploads: 'image1' and 'image2'. [category: photo] |
photo_image_overlay | Image Overlay — Composite one image on top of another at a specified position. Takes two separately-named uploads: 'background' and 'overlay'. [category: photo] |
photo_image_splitter | Image Splitter — Split an image into a grid of equal tiles (e.g. 2x2, 3x3). [category: photo] |
photo_meme_generator | Meme Generator — Add bold top and bottom caption text to an image in Impact-style font. At least one of top_text/bottom_text is required. [category: photo] |
photo_noise_reducer | Noise Reducer — Reduce image noise and grain using ImageMagick's denoising filters. [category: photo] |
photo_resize | Resize Image — Resize an image by pixel dimensions, percentage, fit-within-max, or exact canvas. Supports maintaining aspect ratio. [category: photo] |
photo_rounded_corners | Rounded Corners — Round the corners of an image. The output is always a PNG, because the rounded-off corners are see-through and only PNG can hold that. [category: photo] |
photo_shadow_adder | Add Drop Shadow — Add a drop shadow effect to an image, producing a PNG with transparency. [category: photo] |
photo_svg_to_png | SVG to PNG — Rasterize an SVG vector file to PNG (or JPG/WebP) at a chosen resolution, DPI, and background color. [category: photo] |
photo_to_text | Photo to Text (OCR) — Extract text from an image via OCR. Language selection takes two-letter codes (en, fr, de, ...) separated by commas; Tesseract codes such as eng or chi_sim also work. [category: photo] |
photo_upscaler | Image Upscaler — Enlarge an existing image 2x or 4x with super-resolution detail recovery, with an optional face-enhancement pass. Sharpens and upsizes a user-supplied photo; does not generate new imagery. [category: photo] |
photo_watermark | Add Image Watermark — Overlay a text watermark on a photo with configurable position (ImageMagick gravity names), opacity, and font size. [category: photo] |
share_create | Create Share Link — Create a public download link for a file that works for 24 hours — anyone with the link can download it, no sign-in needed. Use after a conversion to hand the result to a teammate without re-uploading. Business tier only. [category: convert] [requires the business plan] |
web_extract_tableread-only | Extract Table — Extract an HTML table from a public web page at a user-provided http(s) URL, as JSON rows or CSV. [category: web] |
web_fetchread-only | Fetch URL — Fetch the raw (decoded) HTML of a public web page at a user-provided http(s) URL. SSRF-guarded, http/https only, 10 MB body cap, robots-aware. [category: web] |
web_scrape_pageread-only | Scrape Page — Extract structured data from a public web page at a user-provided http(s) URL: CSS-selector mode returns text per selector; readability mode returns the main article as clean markdown. [category: web] |
Schemas: list_tools.
{
"name": "com.johnsessentials/johns-essentials",
"icons": [
{
"src": "https://johnsessentials.com/favicon.svg",
"sizes": [
"any"
],
"mimeType": "image/svg+xml"
},
{
"src": "https://johnsessentials.com/apple-touch-icon.png",
"mimeType": "image/png"
}
],
"title": "John's Essentials",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://api.johnsessentials.com/mcp/messages",
"type": "streamable-http",
"headers": [
{
"name": "Authorization",
"isSecret": true,
"description": "Optional. OAuth 2.1 is the primary auth and is discovered automatically at the endpoint (RFC 9728 — an unauthenticated request returns a 401 carrying the authorization-server metadata), so most clients need no manual setup. Alternatively, send a Bearer API key from https://johnsessentials.com/integrations?tab=apikeys (format: 'Bearer je_live_sk_...')."
}
]
}
],
"version": "1.2.0",
"websiteUrl": "https://johnsessentials.com/docs/mcp",
"description": "144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth)."
}