protogrid

Search / com.johnsessentials/johns-essentials

John's Essentials

R0· no sign-in

144 deterministic file tools: PDF, image, media, convert, analyze. Connect in one click (OAuth).

v1.2.0 · active · website · descriptor JSON · versions

An agent can connect right now, no human step.Remote endpoint, no authentication, reachable on the last probe.
Quality67needs work
Trust79of 100
Uptime, 30 days97%
Latency p50526 ms

Connect

8 clients · secrets stay placeholders
{
  "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.

Quality 67 / 100needs work

protocol88 · weight 25
  • pass
    protocol.modernsupports 2026-07-28 (server/discover)
  • pass
    protocol.statelessanswers without a session
  • pass
    protocol.transportstreamable HTTP
  • warn
    protocol.list_ttltools/list carries no ttlMs, so clients re-fetch it
authorizationn/a · weight 15
  • n/a
    auth.prm, auth.as_metadata, auth.cimdno remote uses OAuth
  • n/a
    auth.secret_in_urlno templated URL
tool hygiene71 · weight 30
  • pass
    tools.descriptionsevery tool has a description
  • pass
    tools.description_lengthdescriptions are concise
  • pass
    tools.schemasevery tool has an object input schema
  • pass
    tools.annotations153 of 153 tools declare readOnlyHint or destructiveHint
  • fail
    tools.directory_hintsno tool declares all four of readOnlyHint, destructiveHint, idempotentHint and openWorldHint; missing: pdf_compress (idempotentHint); pdf_split (idempotentHint); pdf_protect (idempotentHint); …
  • fail
    tools.token_costabout 50,861 tokens to load every tool, a large share of an agent's context
  • pass
    tools.api_dumptools are not a one-to-one API dump
stability25 · weight 15
  • warn
    stability.changes116 tool changes in 30 days
  • fail
    stability.rug_pull2 tools kept their name but changed most of their description in 30 days; review before trusting them
dependenciesn/a · weight 15
  • n/a
    deps.known_vulns, deps.mcp_sdk_version, deps.resolvableno npm or PyPI package

153 tools, about 50,861 tokens to load them all · tool set ef12b2af7e3f · tools last changed 2026-09-29 · checked 2026-10-20 02:01 UTC

Tool changes

  • email_filechangedinput schema
  • photo_rounded_cornerschangedinput schema
  • photo_add_borderchangedinput schema
  • photo_meme_generatorchangedinput schema
  • photo_image_splitterchangedinput schema
  • photo_image_overlaychangedinput schema
  • photo_shadow_adderchangedinput schema
  • photo_face_blurchangedinput schema
  • photo_watermarkchangedinput schema
  • photo_cropchangedinput schema

Showing 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.

Trust 79 / 100

no-repository
provenance55
liveness99
freshness85
hygiene80

+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.

Endpoints

remoteauthreachableuptime 30dp50protocollast ok
https://api.johnsessentials.com/mcp/messages streamable-httpnoneyes97%526 ms2026-07-28, 2025-06-182026-10-19

Tools (153)

analyze_audioread-onlyAudio Analyzer — Analyse an audio file: duration, sample rate, bit rate, channels, codec, waveform data. [category: analyze]
analyze_color_paletteread-onlyColor Palette Extractor — Extract the dominant colour palette from an image. [category: analyze]
analyze_csvread-onlyCSV Analyzer — Analyse a CSV file: row/column count, data types, null counts, min/max/mean per column. [category: analyze]
analyze_duplicate_detectorread-onlyDuplicate Detector — Identify duplicate or near-duplicate files in a batch upload using perceptual hashing. [category: analyze]
analyze_encoding_detectorread-onlyEncoding 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-onlyFile Analyzer — Analyse a file and return type, encoding, size, MIME type, magic bytes, and structure summary. [category: analyze]
analyze_file_diffread-onlyFile 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-onlyFont Detector — Detect fonts used in a PDF or DOCX document. Images are not supported. [category: analyze]
analyze_grammar_checkread-onlyGrammar 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-onlyHash Generator (File) — Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of an uploaded file. [category: analyze]
analyze_image_qualityread-onlyImage Quality Analyzer — Measure sharpness, noise level, compression artefacts, and BRISQUE quality score of an image. [category: analyze]
analyze_image_similarityread-onlyImage 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_validatorJSON/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-onlyLink 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-onlyMetadata Viewer — Extract and display all metadata from a file (EXIF, PDF info, document properties, audio tags). [category: analyze]
analyze_pdf_inspectorread-onlyPDF Inspector — Deep inspection of a PDF: page count, fonts used, annotations, form fields, embedded files. [category: analyze]
analyze_readabilityread-onlyReadability Scorer — Calculate Flesch Reading Ease and Flesch-Kincaid Grade Level for a text. [category: analyze]
analyze_sslread-onlySSL Checker — Check an SSL certificate for a hostname: expiry, issuer, validity, cipher suite. [category: analyze]
analyze_videoread-onlyVideo Inspector — Inspect a video: duration, resolution, frame rate, codec, audio tracks, bitrate. [category: analyze]
analyze_word_countread-onlyWord Counter — Count words, characters, sentences, paragraphs, and reading time in a text or uploaded document (.txt/.pdf/.docx). [category: analyze]
analyze_word_frequencyread-onlyWord Frequency Analyzer — Analyse word frequency distribution in a text or document file. [category: analyze]
chatwithyourpdfread-onlyChat 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_archiveArchive 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_batchBatch 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_chainConversion 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_contactContact Converter — Convert contact/calendar/email formats: vCard↔CSV, vCard→XLSX (vcf to excel), ICS→JSON/CSV, MSG→EML, EML→PDF. [category: convert]
convert_dataData 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_documentDocument 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_ebookeBook 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_fileUniversal 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_geoGPS & 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_pdfJPG to PDF — Convert one or more JPG/PNG images to a PDF document. [category: convert]
convert_parquetParquet 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_sqliteSQLite 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_textText 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_convertUnit Converter — Convert between units of measurement: length, weight, temperature, volume, area, speed, time, and data sizes. [category: convert]
convert_url_to_pdfWebpage 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_videoVideo 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_pdfWord to PDF — Convert a Word document (.docx, .doc) to PDF using LibreOffice. [category: convert]
data_to_fileSave 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-onlyDescribe 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_uploadSave 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_fileEmail 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_placePDF 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_prepareE-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_unzipOpen 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_zipZip 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_artASCII 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_barcodeBarcode Generator — Generate a barcode (Code128, EAN-13, DataMatrix, PDF417, etc.) as a PNG image. [category: generate]
generate_business_cardBusiness Card Generator — Generate a printable business card (PDF or PNG) from name, job title, company, and contact details. [category: generate]
generate_certificateCertificate Generator — Generate a printable certificate of achievement or completion as PDF or PNG. [category: generate]
generate_color_paletteColor 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_faviconFavicon 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_gradientGradient 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_hashHash 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_ipsumLorem Ipsum Generator — Generate lorem ipsum placeholder text by word count or paragraph count. [category: generate]
generate_passwordPassword Generator — Generate a cryptographically secure random password with configurable length and character sets. [category: generate]
generate_placeholder_imagePlaceholder Image — Generate a placeholder image at any dimension with custom background colour and label text. [category: generate]
generate_qr_codeQR Code Generator — Generate a QR code from a URL, text, or vCard data as a PNG image. [category: generate]
generate_signatureSignature 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_uuidUUID 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_watermarkVideo Watermark — Overlay a text watermark onto a video using FFmpeg, with position and opacity control. [category: media]
media_compress_videoCompress Video — Reduce video file size using H.264 re-encoding with FFmpeg (quality presets high/medium/low). [category: media]
media_extract_audioExtract Audio — Extract the audio track from a video file as MP3, WAV, OGG, FLAC, or AAC. [category: media]
media_extract_framesExtract Frames — Extract frames from a video at a specified frame rate as JPEG images (returned as a ZIP). [category: media]
media_merge_audioMerge Audio — Concatenate multiple audio files (at least 2) into one MP3 using FFmpeg. [category: media]
media_mute_videoMute Video — Remove the audio track from a video file. [category: media]
media_trim_audioTrim Audio — Trim an audio file to a specified start and end time using FFmpeg. [category: media]
media_trim_videoTrim Video — Trim a video clip to a specified start and end time without re-encoding. [category: media]
octopus_deletedestructiveDelete 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-onlyList 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_folderCreate Folder — Create a folder (and any missing parent folders) in the user's file storage. [category: files]
octopus_mkdirCreate 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_moveMove 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_fileMove 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-onlyRead 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-onlySearch 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-onlyFind 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_writeSave 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_compressCompress 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_cropCrop 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_pagesDelete Pages — Remove specific pages from a PDF. [category: pdf]
pdf_excel_to_pdfExcel 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_batchExcel 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-onlyExcel 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_pagesExtract 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-onlyPDF File Info — Detailed info about a PDF: size, pages, version, encryption. [category: pdf]
pdf_flattenFlatten 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_batchFlatten 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-onlyGet PDF Metadata — Read the metadata fields of a PDF: Title, Author, Subject, Keywords, Producer, Creator. [category: pdf]
pdf_grayscaleGrayscale PDF — Convert a PDF to grayscale, removing all colour information. [category: pdf]
pdf_header_footerAdd 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_pdfHTML 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_pdfImages to PDF — Combine multiple images (JPG, PNG, TIFF) into a single PDF document. [category: pdf]
pdf_interleaveInterleave PDFs — Interleave pages from two PDFs alternately (useful for double-sided scans). [category: pdf]
pdf_mergeMerge 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_ocrOCR 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-onlyPDF Page Count — Get the total number of pages in a PDF. [category: pdf]
pdf_page_numbersAdd Page Numbers — Add page numbers to a PDF at a specified position (top/bottom, left/center/right). [category: pdf]
pdf_pptx_to_pdfPowerPoint to PDF — Convert a PowerPoint presentation (.pptx, .ppt) to PDF using LibreOffice. [category: pdf]
pdf_protectPassword-Protect PDF — Add a password to a PDF to prevent unauthorised opening or printing. [category: pdf]
pdf_remove_metadataRemove PDF Metadata — Strip all metadata (author, title, keywords, etc.) from a PDF for privacy. [category: pdf]
pdf_remove_watermarkRemove PDF Watermark — Attempt to remove an existing watermark layer from a PDF. [category: pdf]
pdf_reorderReorder PDF Pages — Reorder the pages of a PDF by supplying the desired page sequence. [category: pdf]
pdf_repairRepair PDF — Attempt to repair a corrupted or malformed PDF using Ghostscript. [category: pdf]
pdf_reverseReverse Page Order — Reverse the page order of a PDF (last page becomes first). [category: pdf]
pdf_rotateRotate PDF — Rotate pages of a PDF by 90, 180, or 270 degrees — all pages or specific page numbers. [category: pdf]
pdf_rtf_to_pdfRTF to PDF — Convert an RTF document to PDF using LibreOffice. [category: pdf]
pdf_set_metadataSet 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_splitSplit PDF — Split a PDF by page range, into individual pages, by fixed chunk size, or into even/odd pages. [category: pdf]
pdf_thumbnailsPDF Thumbnails — Generate thumbnail preview images for each page of a PDF. [category: pdf]
pdf_to_excelPDF 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_batchPDF 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-onlyPDF 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_imagesPDF 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_batchPDF 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_pdfaPDF 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_textPDF 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_wordPDF to Word — Convert a PDF to an editable Word document (.docx) using LibreOffice. [category: pdf]
pdf_txt_to_pdfTXT to PDF — Convert a plain text file to a formatted PDF document. [category: pdf]
pdf_unlockUnlock PDF — Remove password protection from a PDF (you must supply the current password). [category: pdf]
pdf_watermarkAdd 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_borderAdd Border — Add a solid-colour border around an image, keeping the format it arrived in. [category: photo]
photo_bg_removerBackground 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_collagePhoto 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_animatedAnimated Photo Collage — Animated/video collage (MP4/GIF/WebM) with Ken Burns motion. Business-only. [category: photo] [requires the business plan]
photo_collage_mosaicPhoto 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_adjusterColor Adjuster — Adjust brightness, contrast, and saturation of an image. [category: photo]
photo_compressCompress Image — Reduce image file size using lossy or lossless compression. Supports JPEG quality setting and target-size mode. [category: photo]
photo_compress_to_sizeCompress Image to Size — Compress an image to hit a target file size in KB. [category: photo]
photo_cropCrop Image — Crop an image to a specified region (x, y, width, height) in pixels. [category: photo]
photo_editorPhoto Editor — Apply a single named filter to an image: grayscale, sepia, blur, sharpen, negate, or vignette. [category: photo]
photo_exif_viewerread-onlyEXIF Viewer — Extract and display all EXIF metadata from a photo including camera, GPS, and settings. [category: photo]
photo_face_blurFace Blur — Automatically detect and blur faces in a photo for privacy protection. [category: photo]
photo_face_detectread-onlyFace Detect — Detect faces in an image and return bounding boxes. [category: photo]
photo_flip_rotateFlip / Rotate Image — Flip an image horizontally or vertically, rotate it by 90/180/270, or rotate by a custom angle. [category: photo]
photo_format_converterImage Format Converter — Convert an image between formats: JPG, PNG, WebP, TIFF, BMP, GIF, AVIF. [category: photo]
photo_image_diffImage Diff — Compare two images and highlight the differences visually. Takes two separately-named uploads: 'image1' and 'image2'. [category: photo]
photo_image_overlayImage Overlay — Composite one image on top of another at a specified position. Takes two separately-named uploads: 'background' and 'overlay'. [category: photo]
photo_image_splitterImage Splitter — Split an image into a grid of equal tiles (e.g. 2x2, 3x3). [category: photo]
photo_meme_generatorMeme 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_reducerNoise Reducer — Reduce image noise and grain using ImageMagick's denoising filters. [category: photo]
photo_resizeResize Image — Resize an image by pixel dimensions, percentage, fit-within-max, or exact canvas. Supports maintaining aspect ratio. [category: photo]
photo_rounded_cornersRounded 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_adderAdd Drop Shadow — Add a drop shadow effect to an image, producing a PNG with transparency. [category: photo]
photo_svg_to_pngSVG to PNG — Rasterize an SVG vector file to PNG (or JPG/WebP) at a chosen resolution, DPI, and background color. [category: photo]
photo_to_textPhoto 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_upscalerImage 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_watermarkAdd Image Watermark — Overlay a text watermark on a photo with configurable position (ImageMagick gravity names), opacity, and font size. [category: photo]
share_createCreate 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-onlyExtract 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-onlyFetch 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-onlyScrape 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.

Similar MCP servers

Official server.json
{
  "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)."
}